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.
beam_point_pressure_condition.hpp
Go to the documentation of this file.
1 //
2 // Project Name: KratosContactMechanicsApplication $
3 // Created by: $Author: JMCarbonell $
4 // Last modified by: $Co-Author: $
5 // Date: $Date: July 2013 $
6 // Revision: $Revision: 0.0 $
7 //
8 //
9 
10 #if !defined(KRATOS_BEAM_PRESSURE_CONDITION_H_INCLUDED )
11 #define KRATOS_BEAM_PRESSURE_CONDITION_H_INCLUDED
12 
13 
14 // System includes
15 
16 // External includes
17 
18 // Project includes
20 
21 namespace Kratos
22 {
23 
26 
30 
34 
38 
42 
44 
46 class KRATOS_API(CONTACT_MECHANICS_APPLICATION) BeamPointPressureCondition
47 : public Condition
48 {
49 protected:
50 
51 
52 public:
53 
54 
55 
57 
59  typedef Vector VectorType;
60  typedef Node::Pointer PointPointerType;
61 
62  std::vector<PointPointerType> mNodesList;
64 
66  // Counted pointer of BeamPointRigidContactCondition
69 
71  BeamPointPressureCondition(IndexType NewId, GeometryType::Pointer pGeometry);
72 
73  BeamPointPressureCondition(IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties);
74 
75  BeamPointPressureCondition(IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties, SpatialBoundingBox::Pointer pRigidWall);
76 
77 
80 
81 
83  virtual ~BeamPointPressureCondition();
84 
85 
86  Condition::Pointer Create(IndexType NewId, NodesArrayType const&
87  ThisNodes, PropertiesType::Pointer pProperties) const;
88  virtual void InitializeSolutionStep(ProcessInfo& rCurrentProcessInfo);
89  virtual void InitializeNonLinearIteration(ProcessInfo& rCurrentProcessInfo);
90  void GetDofList(DofsVectorType& rConditionDofList, ProcessInfo& rCurrentProcessInfo);
91  void EquationIdVector(EquationIdVectorType& rResult, ProcessInfo& rCurrentProcessInfo);
92  void AddExplicitContribution(const VectorType& rRHSVector,
93  const Variable<VectorType>& rRHSVariable,
94  const Variable<array_1d<double,3> >& rDestinationVariable,
95  const ProcessInfo& rCurrentProcessInfo);
96  void InitializeSystemMatrices( MatrixType& rLeftHandSideMatrix, VectorType& rRightHandSideVector);
97  void CalculateRightHandSide( VectorType& rRightHandSideVector, ProcessInfo& rCurrentProcessInfo );
98  void CalculateRightHandSide( std::vector< VectorType >& rRightHandSideVectors, const std::vector< Variable< VectorType > >& rRHSVariables, ProcessInfo& rCurrentProcessInfo );
99  void CalculateLocalSystem( MatrixType& rLeftHandSideMatrix, VectorType& rRightHandSideVector, ProcessInfo& rCurrentProcessInfo );
100  void GetValuesVector(Vector& rValues, int Step);
101  void GetFirstDerivativesVector( Vector& rValues, int Step );
102  void GetSecondDerivativesVector( Vector& rValues, int Step );
103 
104 
105 protected:
106 
108 
109 private:
110 
111  friend class Serializer;
112 
113  virtual void save(Serializer& rSerializer) const
114  {
116  }
117 
118  virtual void load(Serializer& rSerializer)
119  {
121  }
122 
123 
124 }; // Class BeamPointPressureCondition
125 
126 
127 } // namespace Kratos.
128 
129 #endif // KRATOS_BEAM_PRESSURE_CONDITION_H_INCLUDED defined
Short class definition.
Definition: beam_point_pressure_condition.hpp:48
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(BeamPointPressureCondition)
Vector VectorType
Tensor order 1 definition.
Definition: beam_point_pressure_condition.hpp:59
std::vector< PointPointerType > mNodesList
Definition: beam_point_pressure_condition.hpp:62
array_1d< double, 3 > mForce
Definition: beam_point_pressure_condition.hpp:63
BeamPointPressureCondition(IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties, SpatialBoundingBox::Pointer pRigidWall)
BeamPointPressureCondition()
Definition: beam_point_pressure_condition.hpp:107
Node::Pointer PointPointerType
Definition: beam_point_pressure_condition.hpp:60
Base class for all Conditions.
Definition: condition.h:59
std::vector< std::size_t > EquationIdVectorType
Definition: condition.h:98
std::vector< DofType::Pointer > DofsVectorType
Definition: condition.h:100
std::size_t IndexType
Definition: flags.h:74
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
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
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
void InitializeSolutionStep(ConstructionUtility &rThisUtil, std::string ThermalSubModelPartName, std::string MechanicalSubModelPartName, std::string HeatFluxSubModelPartName, std::string HydraulicPressureSubModelPartName, bool thermal_conditions, bool mechanical_conditions, int phase)
Definition: add_custom_utilities_to_python.cpp:45
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307