10 #if !defined(KRATOS_UPDATED_LAGRANGIAN_SEGREGATED_FLUID_ELEMENT_H_INCLUDED)
11 #define KRATOS_UPDATED_LAGRANGIAN_SEGREGATED_FLUID_ELEMENT_H_INCLUDED
68 enum StepType{VELOCITY_STEP = 0, PRESSURE_STEP = 1};
130 void FinalizeSolutionStep(
const ProcessInfo& rCurrentProcessInfo)
override;
135 void InitializeNonLinearIteration(
const ProcessInfo& rCurrentProcessInfo)
override;
140 void FinalizeNonLinearIteration(
const ProcessInfo& rCurrentProcessInfo)
override;
147 void GetDofList(DofsVectorType& rElementalDofList,
const ProcessInfo& rCurrentProcessInfo)
const override;
152 void EquationIdVector(EquationIdVectorType& rResult,
const ProcessInfo& rCurrentProcessInfo)
const override;
157 void GetValuesVector(
Vector& rValues,
int Step = 0)
const override;
162 void GetFirstDerivativesVector(
Vector& rValues,
int Step = 0)
const override;
167 void GetSecondDerivativesVector(
Vector& rValues,
int Step = 0)
const override;
176 void CalculateMassMatrix(
MatrixType& rMassMatrix,
185 void CalculateDampingMatrix(
MatrixType& rDampingMatrix,
199 int Check(
const ProcessInfo& rCurrentProcessInfo)
const override;
212 std::string
Info()
const override
214 std::stringstream buffer;
215 buffer <<
"Updated Lagrangian Fluid Element #" << Id();
222 rOStream <<
"Updated Lagrangian Fluid Element #" << Id();
228 GetGeometry().PrintData(rOStream);
254 void SetProcessInformation(
const ProcessInfo& rCurrentProcessInfo)
override;
265 void GetStepAlpha(
double& rAlpha);
271 const double& rPointNumber)
override;
289 void CalculateAndAddDynamicLHS(
MatrixType& rLeftHandSideMatrix,
295 void CalculateAndAddDynamicRHS(
VectorType& rRightHandSideVector,
301 unsigned int GetDofsSize()
const override;
306 void CalculateAndAddKvvm(
MatrixType& rLeftHandSideMatrix,
312 void CalculateAndAddKvvg(
MatrixType& rLeftHandSideMatrix,
319 void CalculateAndAddKpp(
MatrixType& rLeftHandSideMatrix,
325 void CalculateAndAddInternalForces(
VectorType& rRightHandSideVector,
331 void CalculateAndAddPressureForces(
VectorType& rRightHandSideVector,
337 void AddVolumetricPart(
Vector& rStressVector,
const double& rMeanPressure);
342 void RemoveVolumetricPart(
Vector& rStressVector,
const double& rMeanPressure);
347 void AddVolumetricPart(
Matrix& rConstitutiveMatrix,
const double& rBulkFactor);
352 void RemoveVolumetricPart(
Matrix& rConstitutiveMatrix,
const double& rBulkFactor);
357 void CalculateDenseMatrixMeanValue(
MatrixType& rMatrix,
double& rMeanValue);
362 void CalculateLumpedMatrixMeanValue(
MatrixType& rMatrix,
double& rMeanValue);
367 void CalculateStiffnessFactor(
MatrixType& rLeftHandSideMatrix,
369 const double& rBulkFactor,
370 double& rStiffnessFactor);
376 const int & rPointNumber)
override;
383 const int & rPointNumber)
override;
393 void GetFreeSurfaceFaces(std::vector<std::vector<SizeType> >& Faces);
398 void GetFaceNormal(
const std::vector<SizeType>& rFace,
const ElementDataType & rVariables,
Vector& rNormal);
403 void GetFaceWeight(
const std::vector<SizeType>& rFace,
const ElementDataType & rVariables,
double& rWeight,
double& rNormalSize);
408 void GetFaceNormal(
const std::vector<SizeType>& rFace,
Vector& rNormal);
414 double& CalculateVolumeChange(
double& rVolumeChange,
ElementDataType& rVariables)
override;
452 void save(
Serializer& rSerializer)
const override;
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Definition: constitutive_law.h:47
StressMeasure
Definition: constitutive_law.h:69
Large Displacement Lagrangian Element for 3D and 2D geometries. (base class)
Definition: fluid_element.h:61
IntegrationMethod
Definition: geometry_data.h:76
std::size_t SizeType
Definition: geometry_data.h:173
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
Updated Lagrangian Segregated Fluid Element for 3D and 2D geometries.
Definition: updated_lagrangian_segregated_fluid_element.hpp:46
ConstitutiveLawType::Pointer ConstitutiveLawPointerType
Pointer type for constitutive laws.
Definition: updated_lagrangian_segregated_fluid_element.hpp:54
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(UpdatedLagrangianSegregatedFluidElement)
Counted pointer of UpdatedLagrangianSegregatedFluidElement.
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: updated_lagrangian_segregated_fluid_element.hpp:220
std::string Info() const override
Turn back information as a string.
Definition: updated_lagrangian_segregated_fluid_element.hpp:212
StepType
Definition: updated_lagrangian_segregated_fluid_element.hpp:68
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: updated_lagrangian_segregated_fluid_element.hpp:226
StepType mStepVariable
Definition: updated_lagrangian_segregated_fluid_element.hpp:242
GeometryData::IntegrationMethod IntegrationMethod
Type definition for integration methods.
Definition: updated_lagrangian_segregated_fluid_element.hpp:58
ConstitutiveLawType::StressMeasure StressMeasureType
StressMeasure from constitutive laws.
Definition: updated_lagrangian_segregated_fluid_element.hpp:56
GeometryData::SizeType SizeType
Type for size.
Definition: updated_lagrangian_segregated_fluid_element.hpp:60
GlobalPointersVector< Element > ElementWeakPtrVectorType
Definition: updated_lagrangian_segregated_fluid_element.hpp:62
ConstitutiveLaw ConstitutiveLawType
Definition: updated_lagrangian_segregated_fluid_element.hpp:52
std::size_t IndexType
The definition of the index type.
Definition: key_hash.h:35
void CalculateStabilizationTau(double &rTau, double &rElementLength, const array_1d< double, TDim > &rVelocity, const Matrix &rContravariantMetricTensor, const double Reaction, const double EffectiveKinematicViscosity, const double Alpha, const double Gamma, const double DeltaTime, const double DynamicTau)
Definition: convection_diffusion_reaction_stabilization_utilities.h:52
Modeler::Pointer Create(const std::string &ModelerName, Model &rModel, const Parameters ModelParameters)
Checks if the modeler is registered.
Definition: modeler_factory.cpp:30
void InitializeSolutionStep(ConstructionUtility &rThisUtil, std::string ThermalSubModelPartName, std::string MechanicalSubModelPartName, std::string HeatFluxSubModelPartName, std::string HydraulicPressureSubModelPartName, bool thermal_conditions, bool mechanical_conditions, int phase)
Definition: add_custom_utilities_to_python.cpp:45
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
ModelPart::NodesContainerType NodesArrayType
Definition: gid_gauss_point_container.h:42
def load(f)
Definition: ode_solve.py:307
Definition: constitutive_law.h:189
Definition: fluid_element.hpp:82
Definition: fluid_element.hpp:228