13 #ifndef KRATOS_CONSERVATIVE_ELEMENT_H_INCLUDED
14 #define KRATOS_CONSERVATIVE_ELEMENT_H_INCLUDED
50 template<std::
size_t TNumNodes>
125 return Kratos::make_intrusive<ConservativeElement<TNumNodes>>(NewId, this->
GetGeometry().
Create(ThisNodes), pProperties);
135 Element::Pointer
Create(
IndexType NewId, GeometryType::Pointer pGeom,
typename PropertiesType::Pointer pProperties)
const override
137 return Kratos::make_intrusive<ConservativeElement<TNumNodes>>(NewId, pGeom, pProperties);
149 p_new_elem->SetData(this->
GetData());
150 p_new_elem->Set(
Flags(*
this));
171 std::string
Info()
const override
173 return "ConservativeElement";
221 void save(
Serializer& rSerializer)
const override
Implementation of a linear element for shallow water problems.
Definition: conservative_element.h:52
WaveElement< TNumNodes > WaveElementType
Definition: conservative_element.h:63
void CalculateEdgeUnitNormal(array_1d< double, 2 > &rNormal, const GeometryType &rGeometry)
Definition: conservative_element.cpp:206
WaveElementType::LocalMatrixType LocalMatrixType
Definition: conservative_element.h:71
void GetNodalData(ElementData &rData, const GeometryType &rGeometry, int Step=0) override
Definition: conservative_element.cpp:66
ConservativeElement(IndexType NewId, const NodesArrayType &ThisNodes)
Constructor using an array of nodes.
Definition: conservative_element.h:95
Element::Pointer Clone(IndexType NewId, NodesArrayType const &ThisNodes) const override
Create a new element pointer and clone the previous element data.
Definition: conservative_element.h:146
void UpdateGaussPointData(ElementData &rData, const array_1d< double, TNumNodes > &rN) override
Definition: conservative_element.cpp:78
WaveElementType::LocalVectorType LocalVectorType
Definition: conservative_element.h:73
Element::Pointer Create(IndexType NewId, GeometryType::Pointer pGeom, typename PropertiesType::Pointer pProperties) const override
Create a new element pointer.
Definition: conservative_element.h:135
LocalVectorType GetUnknownVector(const ElementData &rData) const override
Definition: conservative_element.cpp:53
const Variable< double > & GetUnknownComponent(int Index) const override
Definition: conservative_element.cpp:42
Geometry< NodeType > GeometryType
Definition: conservative_element.h:61
ConservativeElement(IndexType NewId, GeometryType::Pointer pGeometry)
Constructor using Geometry.
Definition: conservative_element.h:100
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(ConservativeElement)
const Parameters GetSpecifications() const override
This method provides the specifications/requirements of the element.
Definition: conservative_element.cpp:30
ConservativeElement(IndexType NewId, GeometryType::Pointer pGeometry, typename PropertiesType::Pointer pProperties)
Constructor using Geometry and Properties.
Definition: conservative_element.h:105
~ ConservativeElement() override
Destructor.
Definition: conservative_element.h:110
void CalculateGradient(array_1d< double, 2 > &rGradient, const GeometryType &rGeometry)
Definition: conservative_element.cpp:189
void CalculateArtificialViscosity(BoundedMatrix< double, 3, 3 > &rViscosity, BoundedMatrix< double, 2, 2 > &rDiffusion, const ElementData &rData, const array_1d< double, TNumNodes > &rN, const BoundedMatrix< double, TNumNodes, 2 > &rDN_DX) override
Definition: conservative_element.cpp:139
static constexpr IndexType mLocalSize
Definition: conservative_element.h:182
WaveElementType::ShapeFunctionsGradientsType ShapeFunctionsGradientsType
Definition: conservative_element.h:75
std::string Info() const override
Turn back information as a string.
Definition: conservative_element.h:171
double StabilizationParameter(const ElementData &rData) const override
Definition: conservative_element.cpp:129
WaveElementType::PropertiesType PropertiesType
Definition: conservative_element.h:67
Element::Pointer Create(IndexType NewId, NodesArrayType const &ThisNodes, typename PropertiesType::Pointer pProperties) const override
Create a new element pointer.
Definition: conservative_element.h:123
std::size_t IndexType
Definition: conservative_element.h:57
ConservativeElement()
Default constructor.
Definition: conservative_element.h:90
Node NodeType
Definition: conservative_element.h:59
void CalculateArtificialDamping(BoundedMatrix< double, 3, 3 > &rFriction, const ElementData &rData) override
Definition: conservative_element.cpp:173
WaveElementType::NodesArrayType NodesArrayType
Definition: conservative_element.h:65
WaveElementType::ElementData ElementData
Definition: conservative_element.h:69
Base class for all Elements.
Definition: element.h:60
PropertiesType::Pointer pGetProperties()
returns the pointer to the property of the element. Does not throw an error, to allow copying of elem...
Definition: element.h:1014
std::size_t IndexType
Definition: flags.h:74
Flags()
Default constructor.
Definition: flags.h:119
GeometryType & GetGeometry()
Returns the reference of the geometry.
Definition: geometrical_object.h:158
DataValueContainer & GetData()
Definition: geometrical_object.h:212
Geometry base class.
Definition: geometry.h:71
virtual Pointer Create(PointsArrayType const &rThisPoints) const
Creates a new geometry pointer.
Definition: geometry.h:813
Definition: amatrix_interface.h:41
This class defines the node.
Definition: node.h:65
This class provides to Kratos a data structure for I/O based on the standard of JSON.
Definition: kratos_parameters.h:59
PointerVector is a container like stl vector but using a vector to store pointers to its data.
Definition: pointer_vector.h:72
Properties encapsulates data shared by different Elements or Conditions. It can store any type of dat...
Definition: properties.h:69
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
Implementation of a linear element for shallow water problems.
Definition: wave_element.h:55
static constexpr IndexType mLocalSize
Definition: wave_element.h:287
Short class definition.
Definition: array_1d.h:61
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307
Definition: wave_element.h:299