1 #if !defined(KRATOS_TRUSS_EMBEDDED_EDGE_ELEMENT_H_INCLUDED )
2 #define KRATOS_TRUSS_EMBEDDED_EDGE_ELEMENT_H_INCLUDED
55 GeometryType::Pointer pGeometry)
62 GeometryType::Pointer pGeometry,
63 PropertiesType::Pointer pProperties)
64 :
Element(NewId, pGeometry, pProperties)
82 GeometryType::Pointer pGeom,
83 PropertiesType::Pointer pProperties
86 return Kratos::make_intrusive<TrussEmbeddedEdgeElement>(
87 NewId, pGeom, pProperties);
94 PropertiesType::Pointer pProperties
97 return Kratos::make_intrusive< TrussEmbeddedEdgeElement >(
98 NewId, GetGeometry().
Create(ThisNodes), pProperties);
115 const SizeType number_of_nodes = GetGeometry().size();
116 const SizeType mat_size = number_of_nodes * 3;
118 if (rRightHandSideVector.size() != mat_size)
119 rRightHandSideVector.
resize(mat_size);
124 CalculateAll(left_hand_side_matrix, rRightHandSideVector,
125 rCurrentProcessInfo,
false,
true);
138 const SizeType number_of_nodes = GetGeometry().size();
139 const SizeType mat_size = number_of_nodes * 3;
143 if (rLeftHandSideMatrix.size1() != mat_size)
144 rLeftHandSideMatrix.
resize(mat_size, mat_size);
147 CalculateAll(rLeftHandSideMatrix, right_hand_side_vector,
148 rCurrentProcessInfo,
true,
false);
164 const SizeType number_of_nodes = GetGeometry().size();
165 const SizeType mat_size = number_of_nodes * 3;
167 if (rRightHandSideVector.size() != mat_size)
168 rRightHandSideVector.
resize(mat_size);
171 if (rLeftHandSideMatrix.size1() != mat_size)
172 rLeftHandSideMatrix.
resize(mat_size, mat_size);
175 CalculateAll(rLeftHandSideMatrix, rRightHandSideVector,
176 rCurrentProcessInfo,
true,
true);
184 void CalculateMassMatrix(
194 void CalculateDampingMatrix(
207 std::vector<double>& rValues,
216 void EquationIdVector(
217 EquationIdVectorType& rResult,
227 DofsVectorType& rElementalDofList,
235 void Initialize(
const ProcessInfo& rCurrentProcessInfo)
override;
237 void GetValuesVector(
239 int Step = 0)
const override;
241 void GetFirstDerivativesVector(
243 int Step = 0)
const override;
245 void GetSecondDerivativesVector(
247 int Step = 0)
const override;
260 int Check(
const ProcessInfo& rCurrentProcessInfo)
const override;
267 std::string
Info()
const override
269 std::stringstream buffer;
270 buffer <<
"TrussEmbeddedEdgeElement #" << Id();
277 rOStream <<
"TrussEmbeddedEdgeElement #" << Id();
283 pGetGeometry()->PrintData(rOStream);
292 std::vector<array_1d<double, 3>> mReferenceBaseVector;
305 const bool CalculateStiffnessMatrixFlag,
306 const bool CalculateResidualVectorFlag
315 void save(
Serializer& rSerializer)
const override
Base class for all Elements.
Definition: element.h:60
std::size_t SizeType
Definition: element.h:94
std::size_t IndexType
Definition: flags.h:74
Geometry base class.
Definition: geometry.h:71
void resize(std::size_t NewSize1, std::size_t NewSize2, bool preserve=0)
Definition: amatrix_interface.h:224
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
Definition: truss_embedded_edge_element.h:26
std::size_t IndexType
Definition: truss_embedded_edge_element.h:43
TrussEmbeddedEdgeElement(IndexType NewId, GeometryType::Pointer pGeometry)
Constructor using an array of nodes.
Definition: truss_embedded_edge_element.h:53
void CalculateLocalSystem(MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override
This function provides a more general interface to the element.
Definition: truss_embedded_edge_element.h:159
ConfigurationType
Internal flags used for calculate reference or current kinematic.
Definition: truss_embedded_edge_element.h:29
Geometry< Node > GeometryType
Definition: truss_embedded_edge_element.h:46
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: truss_embedded_edge_element.h:275
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: truss_embedded_edge_element.h:281
TrussEmbeddedEdgeElement(IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties)
Constructor using an array of nodes with properties.
Definition: truss_embedded_edge_element.h:60
Element::Pointer Create(IndexType NewId, NodesArrayType const &ThisNodes, PropertiesType::Pointer pProperties) const override
Create with Id, pointer to geometry and pointer to property.
Definition: truss_embedded_edge_element.h:91
virtual ~TrussEmbeddedEdgeElement()=default
Destructor.
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(TrussEmbeddedEdgeElement)
Counted pointer of TrussEmbeddedEdgeElement.
std::string Info() const override
Turn back information as a string.
Definition: truss_embedded_edge_element.h:267
void CalculateRightHandSide(VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override
This is called during the assembling process in order to calculate the condition right hand side matr...
Definition: truss_embedded_edge_element.h:111
TrussEmbeddedEdgeElement()
Default constructor necessary for serialization.
Definition: truss_embedded_edge_element.h:68
Element::Pointer Create(IndexType NewId, GeometryType::Pointer pGeom, PropertiesType::Pointer pProperties) const override
Create with Id, pointer to geometry and pointer to property.
Definition: truss_embedded_edge_element.h:80
std::size_t SizeType
Size types.
Definition: truss_embedded_edge_element.h:42
void CalculateLeftHandSide(MatrixType &rLeftHandSideMatrix, const ProcessInfo &rCurrentProcessInfo) override
This is called during the assembling process in order to calculate the condition left hand side matri...
Definition: truss_embedded_edge_element.h:134
#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
pybind11::list CalculateOnIntegrationPoints(TObject &dummy, const Variable< TDataType > &rVariable, const ProcessInfo &rProcessInfo)
Definition: add_mesh_to_python.cpp:142
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
KratosZeroVector< double > ZeroVector
Definition: amatrix_interface.h:561
@ Current
Definition: structural_mechanics_math_utilities.hpp:30
KratosZeroMatrix< double > ZeroMatrix
Definition: amatrix_interface.h:559
T & noalias(T &TheMatrix)
Definition: amatrix_interface.h:484
def load(f)
Definition: ode_solve.py:307