KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
RigidEdge.h
Go to the documentation of this file.
1 //
2 // Author: Miquel Santasusana msantasusana@cimne.upc.edu
3 //
4 
5 #if !defined(KRATOS_RIGIDEDGE_H_INCLUDED )
6 #define KRATOS_RIGIDEDGE_H_INCLUDED
7 
8 // System includes
9 
10 // External includes
11 
12 // Project includes
13 #include "includes/define.h"
14 #include "includes/serializer.h"
15 #include "includes/condition.h"
16 #include "includes/variables.h"
17 #include "dem_wall.h"
19 
20 namespace Kratos
21 {
22 
23 class KRATOS_API(DEM_APPLICATION) RigidEdge2D : public DEMWall
24 {
25 public:
26  // Counted pointer of RigidEdge2D
28 
32 
35 
36 
40  RigidEdge2D( IndexType NewId, GeometryType::Pointer pGeometry);
41 
42  RigidEdge2D( IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties);
43 
44 
45  RigidEdge2D( IndexType NewId, GeometryType::Pointer pGeometry,
46  PropertiesType::Pointer pProperties,
47  Condition::Pointer Master,
48  Condition::Pointer Slave,
49  Point& MasterContactLocalPoint,
50  Point& SlaveContactLocalPoint,
51  int SlaveIntegrationPointIndex
52  );
56  virtual ~RigidEdge2D();
57 
58 
59  Condition::Pointer Create( IndexType NewId, NodesArrayType const& ThisNodes, PropertiesType::Pointer pProperties) const override;
60 
61  void Initialize(const ProcessInfo& rCurrentProcessInfo) override;
62  void CalculateNormal(array_1d<double, 3>& rnormal) override;
63  void Calculate(const Variable<Vector >& rVariable, Vector& Output, const ProcessInfo& r_process_info) override;
64  void FinalizeSolutionStep(const ProcessInfo& r_process_info) override;
65  void ComputeConditionRelativeData(int rigid_neighbour_index,
66  SphericParticle* const particle,
67  double LocalCoordSystem[3][3],
68  double& DistPToB,
69  array_1d<double, 4>& Weight,
70  array_1d<double, 3>& edge_delta_disp_at_contact_point,
71  array_1d<double, 3>& edge_velocity_at_contact_point,
72  int& ContactType) override;
73 
78  //std::string Info();
79 
84  //virtual void PrintInfo(std::ostream& rOStream) const;
85 
90  //virtual void PrintData(std::ostream& rOStream) const;
91 
92 protected:
93 
94 
95 private:
96 
97 
100  friend class Serializer;
101 
102  // A private default constructor necessary for serialization
103  RigidEdge2D() {};
104 
105  virtual void save(Serializer& rSerializer) const override
106  {
108  }
109 
110  virtual void load(Serializer& rSerializer) override
111  {
112  KRATOS_SERIALIZE_LOAD_BASE_CLASS(rSerializer, DEMWall );
113  }
114 
115 }; // Class ContactLink3DExplicit
116 } // namespace Kratos.
117 
118 #endif // KRATOS_RIGIDEDGE_H_INCLUDED defined
Definition: dem_wall.h:29
std::size_t IndexType
Definition: flags.h:74
boost::indirect_iterator< typename TContainerType::iterator > iterator
Definition: global_pointers_vector.h:79
typename TContainerType::iterator ptr_iterator
Definition: global_pointers_vector.h:85
Point class.
Definition: point.h:59
PointerVector is a container like stl vector but using a vector to store pointers to its data.
Definition: pointer_vector.h:72
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
Definition: RigidEdge.h:24
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(RigidEdge2D)
ParticleWeakVectorType::ptr_iterator ParticleWeakIteratorType_ptr
Definition: RigidEdge.h:30
GlobalPointersVector< Condition >::iterator ConditionWeakIteratorType
Definition: RigidEdge.h:34
GlobalPointersVector< Element > ParticleWeakVectorType
Definition: RigidEdge.h:29
GlobalPointersVector< Element >::iterator ParticleWeakIteratorType
Definition: RigidEdge.h:31
GlobalPointersVector< Condition > ConditionWeakVectorType
Definition: RigidEdge.h:33
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
Definition: spheric_particle.h:31
Variable class contains all information needed to store and retrive data from a data container.
Definition: variable.h:63
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
Modeler::Pointer Create(const std::string &ModelerName, Model &rModel, const Parameters ModelParameters)
Checks if the modeler is registered.
Definition: modeler_factory.cpp:30
TDataType Calculate(GeometryType &dummy, const Variable< TDataType > &rVariable)
Definition: add_geometries_to_python.cpp:103
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307