14 #ifndef KRATOS_EMBEDDED_FLUID_ELEMENT_DISCONTINUOUS_H
15 #define KRATOS_EMBEDDED_FLUID_ELEMENT_DISCONTINUOUS_H
53 template<
class TBaseElement >
94 constexpr
static std::size_t
Dim = TBaseElement::Dim;
95 constexpr
static std::size_t
NumNodes = TBaseElement::NumNodes;
96 constexpr
static std::size_t
BlockSize = TBaseElement::BlockSize;
97 constexpr
static std::size_t
LocalSize = TBaseElement::LocalSize;
98 constexpr
static std::size_t
StrainSize = TBaseElement::StrainSize;
160 Properties::Pointer pProperties)
const override;
172 Properties::Pointer pProperties)
const override;
261 std::string
Info()
const override;
265 void PrintInfo(std::ostream& rOStream)
const override;
335 double Tolerance)
const;
437 void save(
Serializer& rSerializer)
const override;
457 void CalculateDragForce(
468 void CalculateDragForceCenter(
482 inline double AuxiliaryDensityGetter(
484 const std::size_t NodeIndex)
const;
511 namespace EmbeddedDiscontinuousInternals {
513 template <
size_t TDim,
size_t TNumNodes>
516 const Vector &rElementalDistances);
518 template <
size_t TDim,
size_t TNumNodes>
521 const Vector &rElementalDistances);
523 template <
size_t TDim,
size_t TNumNodes>
526 const Vector &rElementalDistancesWithExtrapolated,
527 const Vector &rElementalEdgeDistancesExtrapolated);
542 template<
class TElementData >
544 std::istream& rIStream,
551 template<
class TElementData >
553 std::ostream& rOStream,
557 rOStream << std::endl;
558 rThis.PrintData(rOStream);
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Base class for all Elements.
Definition: element.h:60
Definition: embedded_discontinuous_data.h:29
std::vector< array_1d< double, 3 > > InterfaceNormalsType
Definition: embedded_discontinuous_data.h:39
Definition: embedded_fluid_element_discontinuous.h:55
void Calculate(const Variable< double > &rVariable, double &rOutput, const ProcessInfo &rCurrentProcessInfo) override
Computes an elemental double value.
Definition: embedded_fluid_element_discontinuous.cpp:194
std::pair< const double, const double > ComputeTangentialPenaltyCoefficients(const EmbeddedDiscontinuousElementData &rData) const
Definition: embedded_fluid_element_discontinuous.cpp:989
void NormalizeInterfaceNormals(typename EmbeddedDiscontinuousElementData::InterfaceNormalsType &rNormals, double Tolerance) const
For an intersected element, normalize the interface normals This method normalizes the interface norm...
Definition: embedded_fluid_element_discontinuous.cpp:494
void AddTangentialPenaltyContribution(MatrixType &rLHS, VectorType &rRHS, const EmbeddedDiscontinuousElementData &rData) const
Definition: embedded_fluid_element_discontinuous.cpp:712
EmbeddedFluidElementDiscontinuous(IndexType NewId=0)
Default constuctor.
Definition: embedded_fluid_element_discontinuous.cpp:25
void CalculateLocalSystem(MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override
Calculates both LHS and RHS contributions.
Definition: embedded_fluid_element_discontinuous.cpp:100
constexpr static std::size_t StrainSize
Definition: embedded_fluid_element_discontinuous.h:98
Node NodeType
Node type (default is: Node)
Definition: embedded_fluid_element_discontinuous.h:64
void AddNormalSymmetricCounterpartContribution(MatrixType &rLHS, VectorType &rRHS, const EmbeddedDiscontinuousElementData &rData) const
Definition: embedded_fluid_element_discontinuous.cpp:579
Matrix MatrixType
Matrix type for local contributions to the linear system.
Definition: embedded_fluid_element_discontinuous.h:73
void AddTangentialSymmetricCounterpartContribution(MatrixType &rLHS, VectorType &rRHS, const EmbeddedDiscontinuousElementData &rData) const
Definition: embedded_fluid_element_discontinuous.cpp:836
std::pair< const double, const double > ComputeTangentialNitscheCoefficients(const EmbeddedDiscontinuousElementData &rData) const
Definition: embedded_fluid_element_discontinuous.cpp:1005
int Check(const ProcessInfo &rCurrentProcessInfo) const override
Definition: embedded_fluid_element_discontinuous.cpp:254
PointerVectorSet< Dof< double >, IndexedObject > DofsArrayType
Definition: embedded_fluid_element_discontinuous.h:83
double ComputeNormalPenaltyCoefficient(const EmbeddedDiscontinuousElementData &rData, const Vector &rN) const
Definition: embedded_fluid_element_discontinuous.cpp:964
void DefineIncisedGeometryData(EmbeddedDiscontinuousElementData &rData) const
Intersected element geometry data fill This method sets the data structure geometry fields (shape fun...
Definition: embedded_fluid_element_discontinuous.cpp:433
Geometry< NodeType >::PointsArrayType NodesArrayType
Definition of nodes container type, redefined from GeometryType.
Definition: embedded_fluid_element_discontinuous.h:67
typename TBaseElement::ElementData BaseElementData
Definition: embedded_fluid_element_discontinuous.h:100
const Parameters GetSpecifications() const override
Definition: embedded_fluid_element_discontinuous.cpp:268
void DefineStandardGeometryData(EmbeddedDiscontinuousElementData &rData) const
Non-intersected element geometry data fill This method sets the data structure geometry fields (shape...
Definition: embedded_fluid_element_discontinuous.cpp:367
Kratos::Matrix ShapeFunctionDerivativesType
Type for a matrix containing the shape function gradients.
Definition: embedded_fluid_element_discontinuous.h:89
std::vector< std::size_t > EquationIdVectorType
Definition: embedded_fluid_element_discontinuous.h:79
void InitializeGeometryData(EmbeddedDiscontinuousElementData &rData) const
Current element data structure initialization This method checks if the element is intersected and ca...
Definition: embedded_fluid_element_discontinuous.cpp:332
std::string Info() const override
Turn back information as a string.
Definition: embedded_fluid_element_discontinuous.cpp:308
Vector VectorType
Vector type for local contributions to the linear system.
Definition: embedded_fluid_element_discontinuous.h:70
void DefineCutGeometryData(EmbeddedDiscontinuousElementData &rData) const
Intersected element geometry data fill This method sets the data structure geometry fields (shape fun...
Definition: embedded_fluid_element_discontinuous.cpp:375
std::size_t IndexType
Definition: embedded_fluid_element_discontinuous.h:75
std::vector< Dof< double >::Pointer > DofsVectorType
Definition: embedded_fluid_element_discontinuous.h:81
constexpr static std::size_t LocalSize
Definition: embedded_fluid_element_discontinuous.h:97
void AddNormalPenaltyContribution(MatrixType &rLHS, VectorType &rRHS, const EmbeddedDiscontinuousElementData &rData) const
Definition: embedded_fluid_element_discontinuous.cpp:505
Geometry< NodeType >::ShapeFunctionsGradientsType ShapeFunctionDerivativesArrayType
Type for an array of shape function gradient matrices.
Definition: embedded_fluid_element_discontinuous.h:92
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(EmbeddedFluidElementDiscontinuous)
Pointer definition of EmbeddedFluidElementDiscontinuous.
Kratos::Vector ShapeFunctionsType
Type for shape function values container.
Definition: embedded_fluid_element_discontinuous.h:86
constexpr static std::size_t BlockSize
Definition: embedded_fluid_element_discontinuous.h:96
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: embedded_fluid_element_discontinuous.cpp:316
void Initialize(const ProcessInfo &rCurrentProcessInfo) override
Set up the element for solution.
Definition: embedded_fluid_element_discontinuous.cpp:73
Element::Pointer Create(IndexType NewId, NodesArrayType const &ThisNodes, Properties::Pointer pProperties) const override
Create a new element of this type.
Definition: embedded_fluid_element_discontinuous.cpp:54
constexpr static std::size_t Dim
Definition: embedded_fluid_element_discontinuous.h:94
std::size_t SizeType
Definition: embedded_fluid_element_discontinuous.h:77
constexpr static std::size_t NumNodes
Definition: embedded_fluid_element_discontinuous.h:95
~EmbeddedFluidElementDiscontinuous() override
Destructor.
Definition: embedded_fluid_element_discontinuous.cpp:47
Geometry base class.
Definition: geometry.h:71
This object defines an indexed object.
Definition: indexed_object.h:54
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
A sorted associative container similar to an STL set, but uses a vector to store pointers to its data...
Definition: pointer_vector_set.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
ModifiedShapeFunctions::Pointer GetContinuousShapeFunctionCalculator(const Element &rElement, const Vector &rElementalDistances)
ModifiedShapeFunctions::UniquePointer GetIncisedShapeFunctionCalculator(const Element &rElement, const Vector &rElementalDistancesWithExtrapolated, const Vector &rElementalEdgeDistancesExtrapolated)
ModifiedShapeFunctions::UniquePointer GetShapeFunctionCalculator(const Element &rElement, const Vector &rElementalDistances)
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
std::istream & operator>>(std::istream &rIStream, LinearMasterSlaveConstraint &rThis)
input stream function
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432
def load(f)
Definition: ode_solve.py:307