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.
axisymmetric_line_load_condition.hpp
Go to the documentation of this file.
1 //
2 // Project Name: KratosSolidMechanicsApplication $
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_AXISYMMETRIC_LINE_LOAD_CONDITION_H_INCLUDED)
11 #define KRATOS_AXISYMMETRIC_LINE_LOAD_CONDITION_H_INCLUDED
12 
13 // System includes
14 
15 // External includes
16 
17 // Project includes
19 
20 namespace Kratos
21 {
36 
38 
43 class KRATOS_API(SOLID_MECHANICS_APPLICATION) AxisymmetricLineLoadCondition
44  : public LineLoadCondition
45 {
46 public:
47 
50  // Counted pointer of AxisymmetricLineLoadCondition
53 
56 
58  AxisymmetricLineLoadCondition( IndexType NewId, GeometryType::Pointer pGeometry );
59 
60  AxisymmetricLineLoadCondition( IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties );
61 
64 
67 
71 
72 
76 
84  Condition::Pointer Create(IndexType NewId,
85  NodesArrayType const& ThisNodes,
86  PropertiesType::Pointer pProperties ) const override;
87 
88 
96  Condition::Pointer Clone(IndexType NewId,
97  NodesArrayType const& ThisNodes) const override;
98 
99 
100 
101  //************* COMPUTING METHODS
102 
103 
111  int Check( const ProcessInfo& rCurrentProcessInfo ) const override;
112 
126 
127 protected:
140 
141 
145  void CalculateKinematics(ConditionVariables& rVariables,
146  const double& rPointNumber) override;
147 
151  void CalculateAndAddLHS(LocalSystemComponents& rLocalSystem,
152  ConditionVariables& rVariables,
153  double& rIntegrationWeight) override;
154 
158  void CalculateAndAddRHS(LocalSystemComponents& rLocalSystem,
159  ConditionVariables& rVariables,
160  double& rIntegrationWeight) override;
161 
165  void CalculateRadius(double & rCurrentRadius,
166  double & rReferenceRadius,
167  const Vector& rN);
168 
172 
173 
177 
178 
182 
183 
185 
186 private:
189 
190 
194 
198 
199 
203 
204 
208 
209 
213 
217 
218  friend class Serializer;
219 
220  void save(Serializer& rSerializer) const override;
221 
222  void load(Serializer& rSerializer) override;
223 
224 
225 }; // class AxisymmetricLineLoadCondition.
226 
227 } // namespace Kratos.
228 
229 #endif // KRATOS_AXISYMMETRIC_LINE_LOAD_CONDITION_H_INCLUDED defined
Load Condition for 2D axisymmetric geometries. (base class)
Definition: axisymmetric_line_load_condition.hpp:45
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(AxisymmetricLineLoadCondition)
AxisymmetricLineLoadCondition()
Definition: axisymmetric_line_load_condition.hpp:133
std::size_t IndexType
Definition: flags.h:74
Line load condition for 3D and 2D geometries.
Definition: line_load_condition.hpp:41
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
double CalculateRadius(const PairedCondition *pCondition, const Vector &rNSlave)
Calculates the radius of axisymmetry.
Definition: mortar_explicit_contribution_utilities.cpp:675
Modeler::Pointer Create(const std::string &ModelerName, Model &rModel, const Parameters ModelParameters)
Checks if the modeler is registered.
Definition: modeler_factory.cpp:30
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307