9 #if !defined(KRATOS_TWO_STEP_UPDATED_LAGRANGIAN_V_P_IMPLICIT_ELEMENT_H_INCLUDED)
10 #define KRATOS_TWO_STEP_UPDATED_LAGRANGIAN_V_P_IMPLICIT_ELEMENT_H_INCLUDED
24 #include "utilities/geometry_utilities.h"
61 template <
unsigned int TDim>
216 KRATOS_THROW_ERROR(std::logic_error,
"TwoStepUpdatedLagrangianVPImplicitElement::CalculateLeftHandSide not implemented",
"");
224 KRATOS_THROW_ERROR(std::logic_error,
"TwoStepUpdatedLagrangianVPImplicitElement::CalculateRightHandSide not implemented",
"");
229 std::vector<bool> &rOutput,
233 std::vector<double> &rOutput,
237 std::vector<Vector> &rOutput,
290 std::string
Info()
const override
292 std::stringstream buffer;
293 buffer <<
"TwoStepUpdatedLagrangianVPImplicitElement #" <<
BaseType::Id();
300 rOStream <<
"TwoStepUpdatedLagrangianVPImplicitElement" << TDim <<
"D";
335 const ProcessInfo &rCurrentProcessInfo)
override{};
339 std::cout <<
"I SHOULD NOT ENTER HERE!" << std::endl;
345 std::cout <<
"I SHOULD NOT ENTER HERE!" << std::endl;
352 const double secondLame,
355 double &MeanValueMass,
356 const double TimeStep){};
360 double &meanValueStiff,
361 double &bulkCoefficient,
367 const double secondLame,
368 const double bulkModulus,
370 const double Weight);
373 const double Weight)
override{};
377 const double Weight){};
381 const double TimeStep,
382 const double BoundRHSCoeffAcc,
383 const double BoundRHSCoeffDev){};
387 const double Weight){};
391 const unsigned int g,
395 double &DeviatoricCoeff,
396 double &VolumetricCoeff)
override
401 const double Density,
402 const double Viscosity,
408 const double Weight){};
418 const double Density,
451 void save(
Serializer &rSerializer)
const override
501 template <
unsigned int TDim>
509 template <
unsigned int TDim>
514 rOStream << std::endl;
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Definition: constitutive_law.h:47
Base class for all Elements.
Definition: element.h:60
std::size_t SizeType
Definition: element.h:94
virtual void MassMatrix(MatrixType &rMassMatrix, const ProcessInfo &rCurrentProcessInfo)
Definition: element.h:926
std::size_t IndexType
Definition: flags.h:74
This defines the geometrical object, base definition of the element and condition entities.
Definition: geometrical_object.h:58
GeometryType & GetGeometry()
Returns the reference of the geometry.
Definition: geometrical_object.h:158
Geometry base class.
Definition: geometry.h:71
This object defines an indexed object.
Definition: indexed_object.h:54
IndexType Id() const
Definition: indexed_object.h:107
This class defines the node.
Definition: node.h:65
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
A stabilized element for the incompressible Navier-Stokes equations.
Definition: two_step_updated_lagrangian_element.h:63
A stabilized element for the incompressible Navier-Stokes equations.
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:63
Variable class contains all information needed to store and retrive data from a data container.
Definition: variable.h:63
#define KRATOS_THROW_ERROR(ExceptionType, ErrorMessage, MoreInfo)
Definition: define.h:77
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_CATCH(MoreInfo)
Definition: define.h:110
#define KRATOS_TRY
Definition: define.h:109
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
void CalcElasticPlasticCauchySplitted(ElementalVariables &rElementalVariables, const unsigned int g, const Vector &rN, const ProcessInfo &rCurrentProcessInfo, double &Density, double &DeviatoricCoeff, double &VolumetricCoeff) override
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:389
std::size_t SizeType
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:92
std::vector< Dof< double >::Pointer > DofsVectorType
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:96
BaseType::PropertiesType::Pointer pPropertiesType
Definition: two_step_updated_lagrangian_element.h:116
Kratos::Matrix MatrixType
Matrix type for local contributions to the linear system.
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:88
std::size_t IndexType
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:90
virtual void CalculateTauFIC(double &TauOne, double ElemSize, const double Density, const double Viscosity, const ProcessInfo &rCurrentProcessInfo)
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:399
std::string Info() const override
Turn back information as a string.
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:290
Element::Pointer Create(IndexType NewId, NodesArrayType const &ThisNodes, pPropertiesType pProperties) const override
Create a new element of this type.
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:192
virtual void ComputeBoundLHSMatrix(MatrixType &BoundLHSMatrix, const ShapeFunctionsType &rN, const double Weight)
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:375
void CalculateLeftHandSide(MatrixType &rLeftHandSideMatrix, const ProcessInfo &rCurrentProcessInfo) override
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:212
TwoStepUpdatedLagrangianVPImplicitElement(IndexType NewId, const NodesArrayType &ThisNodes)
Constructor using an array of nodes.
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:142
Geometry< NodeType > GeometryType
Geometry type (using with given NodeType)
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:79
ConstitutiveLaw::Pointer mpConstitutiveLaw
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:319
void InitializeNonLinearIteration(const ProcessInfo &rCurrentProcessInfo) override
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:205
virtual void ComputeBoundRHSVector(VectorType &BoundRHSVector, const ShapeFunctionsType &rN, const double TimeStep, const double BoundRHSCoeffAcc, const double BoundRHSCoeffDev)
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:379
ConstitutiveLawType::Pointer ConstitutiveLawPointerType
Pointer type for constitutive laws.
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:121
Kratos::Vector VectorType
Vector type for local contributions to the linear system.
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:85
Kratos::Matrix ShapeFunctionDerivativesType
Type for a matrix containing the shape function gradients.
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:104
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:298
BaseType::PropertiesType PropertiesType
Definition: two_step_updated_lagrangian_element.h:114
PointerVectorSet< Dof< double >, IndexedObject > DofsArrayType
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:98
void CalculateOnIntegrationPoints(const Variable< bool > &rVariable, std::vector< bool > &rOutput, const ProcessInfo &rCurrentProcessInfo) override
Definition: two_step_updated_lagrangian_V_P_implicit_element.cpp:215
GeometryType::ShapeFunctionsGradientsType ShapeFunctionDerivativesArrayType
Type for an array of shape function gradient matrices.
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:107
void CalculateLocalContinuityEqForPressure(MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:333
virtual void AddStabilizationNodalTermsLHS(MatrixType &rLeftHandSideMatrix, const double Tau, const double Weight, const ShapeFunctionDerivativesType &rDN_DX, const SizeType i)
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:410
BaseType::ElementalVariables ElementalVariables
Definition: two_step_updated_lagrangian_element.h:118
BaseType::PropertiesType::Pointer pPropertiesType
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:113
void InitializeElementalVariables(ElementalVariables &rElementalVariables) override
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:253
Node NodeType
Node type (default is: Node)
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:76
TwoStepUpdatedLagrangianElement< TDim > BaseType
base type:
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:73
Kratos::Vector ShapeFunctionsType
Type for shape function values container.
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:101
void CalculateRightHandSide(VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:220
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(TwoStepUpdatedLagrangianVPImplicitElement)
Pointer definition of TwoStepUpdatedLagrangianVPImplicitElement.
void ComputeCompleteTangentTerm(ElementalVariables &rElementalVariables, MatrixType &rDampingMatrix, const ShapeFunctionDerivativesType &rShapeDeriv, const double secondLame, const double bulkModulus, const double theta, const double Weight)
ConstitutiveLaw ConstitutiveLawType
Reference type definition for constitutive laws.
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:118
virtual void ComputeBulkMatrixLump(MatrixType &BulkMatrix, const double Weight) override
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:372
std::vector< std::size_t > EquationIdVectorType
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:94
BaseType::PropertiesType PropertiesType
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:111
virtual ~TwoStepUpdatedLagrangianVPImplicitElement()
Destructor.
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:172
TwoStepUpdatedLagrangianVPImplicitElement(IndexType NewId=0)
Default constuctor.
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:133
TwoStepUpdatedLagrangianVPImplicitElement(IndexType NewId, GeometryType::Pointer pGeometry, pPropertiesType pProperties)
Constuctor using geometry and properties.
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:161
void Initialize(const ProcessInfo &rCurrentProcessInfo) override
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:200
Element::Pointer Clone(IndexType NewId, NodesArrayType const &ThisNodes) const override
It creates a new element pointer and clones the previous element data.
Definition: two_step_updated_lagrangian_V_P_implicit_element.cpp:21
Geometry< NodeType >::PointsArrayType NodesArrayType
Definition of nodes container type, redefined from GeometryType.
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:82
virtual void AddStabilizationMatrixLHS(MatrixType &rLeftHandSideMatrix, Matrix &BulkAccMatrix, const ShapeFunctionsType &rN, const double Weight)
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:405
int Check(const ProcessInfo &rCurrentProcessInfo) const override
Checks the input and that all required Kratos variables have been registered.
Definition: two_step_updated_lagrangian_V_P_implicit_element.cpp:354
void ComputeMeanValueMaterialTangentMatrix(ElementalVariables &rElementalVariables, double &MeanValue, const ShapeFunctionDerivativesType &rShapeDeriv, const double secondLame, double &bulkModulus, const double Weight, double &MeanValueMass, const double TimeStep)
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:349
virtual void ComputeBulkReductionCoefficient(MatrixType MassMatrix, MatrixType StiffnessMatrix, double &meanValueStiff, double &bulkCoefficient, double timeStep)
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:358
double GetThetaContinuity() override
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:343
void CalculateLocalSystem(MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override
Calculate the element's local contribution to the system for the current step.
Definition: two_step_updated_lagrangian_V_P_implicit_element.cpp:32
TwoStepUpdatedLagrangianVPImplicitElement(IndexType NewId, GeometryType::Pointer pGeometry)
Constructor using a geometry object.
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:151
void UpdateCauchyStress(unsigned int g, const ProcessInfo &rCurrentProcessInfo) override
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:251
BaseType::ElementalVariables ElementalVariables
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:115
double GetThetaMomentum() override
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:337
virtual void ComputeStabLaplacianMatrix(MatrixType &StabLaplacianMatrix, const ShapeFunctionDerivativesType &rShapeDeriv, const double Weight)
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:385
void InitializeSolutionStep(const ProcessInfo &rCurrentProcessInfo) override
Initializes the element and all geometric information required for the problem.
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:203
TwoStepUpdatedLagrangianVPImplicitElement(TwoStepUpdatedLagrangianVPImplicitElement const &rOther)
copy constructor
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:167
virtual void AddStabilizationNodalTermsRHS(VectorType &rRightHandSideVector, const double Tau, const double Density, const double Weight, const ShapeFunctionDerivativesType &rDN_DX, const SizeType i)
Definition: two_step_updated_lagrangian_V_P_implicit_element.h:416
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: updated_lagrangian_element.hpp:177
void CalculateLocalMomentumEquations(MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override
Definition: two_step_updated_lagrangian_V_P_implicit_element.cpp:61
std::size_t IndexType
The definition of the index type.
Definition: key_hash.h:35
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
ModelPart::NodesContainerType NodesArrayType
Definition: gid_gauss_point_container.h:42
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
integer i
Definition: TensorModule.f:17
Definition: updated_lagrangian_element.h:74