12 #ifndef KRATOS_EMBEDDED_LAPLACIAN_ELEMENT_H_INCLUDED
13 #define KRATOS_EMBEDDED_LAPLACIAN_ELEMENT_H_INCLUDED
49 namespace EmbeddedLaplacianInternals {
51 template <
size_t TDim,
size_t TNumNodes>
54 const Vector &rNodalDistances);
57 template<std::
size_t TDim>
64 static constexpr std::size_t
NumNodes = TDim + 1;
114 template<std::
size_t TDim>
139 GeometryType::Pointer pGeometry);
143 GeometryType::Pointer pGeometry,
144 PropertiesType::Pointer pProperties);
161 PropertiesType::Pointer pProperties)
const override;
165 GeometryType::Pointer pGeom,
166 PropertiesType::Pointer pProperties)
const override;
239 double Tolerance)
const;
310 void save(
Serializer& rSerializer)
const override
Base class for all Elements.
Definition: element.h:60
Definition: embedded_laplacian_element.h:116
int Check(const ProcessInfo &rCurrentProcessInfo) const override
Definition: embedded_laplacian_element.cpp:140
void CalculateRightHandSide(VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override
Definition: embedded_laplacian_element.cpp:131
void AddNitscheBoundaryTerms(MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo, const EmbeddedElementData &rData)
Calculation of the Nitsche boundary terms for intersected elements This method calculates the Nitsche...
Definition: embedded_laplacian_element.cpp:293
void AddPositiveInterfaceTerms(MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo, const EmbeddedElementData &rData)
Calculation of the interface terms for intersected elements This method calculates the interface term...
Definition: embedded_laplacian_element.cpp:245
void InitializeGeometryData(EmbeddedElementData &rData)
Intersected element data structure initialization This method sets the data structure geometry fields...
Definition: embedded_laplacian_element.cpp:151
GeometryData::ShapeFunctionsGradientsType ShapeFunctionsGradientsType
Definition: embedded_laplacian_element.h:125
void AddPositiveElementSide(MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo, const EmbeddedElementData &rData)
Calculation of positive side for intersected elements This method calculates a volume integral of the...
Definition: embedded_laplacian_element.cpp:197
void CalculateLeftHandSide(MatrixType &rLeftHandSideMatrix, const ProcessInfo &rCurrentProcessInfo) override
Definition: embedded_laplacian_element.cpp:122
void NormalizeInterfaceNormals(typename EmbeddedElementData::InterfaceNormalsType &rNormals, double Tolerance) const
For an intersected element, normalize the interface normals This method normalizes the interface norm...
Definition: embedded_laplacian_element.cpp:186
virtual ~EmbeddedLaplacianElement()
Destructor.
Definition: embedded_laplacian_element.cpp:73
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(EmbeddedLaplacianElement)
Counted pointer of EmbeddedLaplacianElement.
LaplacianElement BaseType
Definition: embedded_laplacian_element.h:124
Element::Pointer Create(IndexType NewId, NodesArrayType const &ThisNodes, PropertiesType::Pointer pProperties) const override
It creates a new element pointer.
Definition: embedded_laplacian_element.cpp:55
void CalculateLocalSystem(MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override
Definition: embedded_laplacian_element.cpp:78
static constexpr std::size_t NumNodes
Definition: embedded_laplacian_element.h:127
EmbeddedLaplacianElement()
Definition: embedded_laplacian_element.h:289
Definition: embedded_laplacian_element.h:59
array_1d< double, NumNodes > NodalScalarData
Definition: embedded_laplacian_element.h:68
size_t NumNegativeNodes
Definition: embedded_laplacian_element.h:88
size_t NumPositiveNodes
Definition: embedded_laplacian_element.h:87
NodalScalarData NodalDistances
Definition: embedded_laplacian_element.h:76
Matrix PositiveInterfaceN
Definition: embedded_laplacian_element.h:82
static constexpr std::size_t NumNodes
Definition: embedded_laplacian_element.h:64
InterfaceNormalsType PositiveInterfaceUnitNormals
Definition: embedded_laplacian_element.h:85
ShapeFunctionsGradientsType PositiveInterfaceDNDX
Definition: embedded_laplacian_element.h:83
bool IsSplit()
Checks if the current element is intersected Checks if the current element is intersected by checking...
Definition: embedded_laplacian_element.cpp:411
GeometryData::ShapeFunctionsGradientsType ShapeFunctionsGradientsType
Definition: embedded_laplacian_element.h:66
Vector PositiveSideWeights
Definition: embedded_laplacian_element.h:80
ShapeFunctionsGradientsType PositiveSideDNDX
Definition: embedded_laplacian_element.h:79
Vector PositiveInterfaceWeights
Definition: embedded_laplacian_element.h:84
Matrix PositiveSideN
Definition: embedded_laplacian_element.h:78
double PenaltyCoefficient
Definition: embedded_laplacian_element.h:74
void Initialize(const Element &rElement)
Split element data container initialization This method initializes the embedded formulation data con...
Definition: embedded_laplacian_element.cpp:384
std::vector< array_1d< double, 3 > > InterfaceNormalsType
Definition: embedded_laplacian_element.h:67
std::size_t IndexType
Definition: flags.h:74
Short class definition.
Definition: laplacian_element.h:53
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
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
ModifiedShapeFunctions::Pointer GetContinuousShapeFunctionCalculator(const Element &rElement, const Vector &rNodalDistances)
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307