10 #if !defined(KRATOS_BOUNDARY_CONDITION_H_INCLUDED)
11 #define KRATOS_BOUNDARY_CONDITION_H_INCLUDED
20 #include "custom_utilities/solid_mechanics_math_utilities.hpp"
22 #include "custom_utilities/element_utilities.hpp"
122 pNcontainer=&rNcontainer;
140 const unsigned int& local_dimension,
141 const unsigned int& number_of_nodes )
151 ExternalScalarValue = 0;
155 N.resize(number_of_nodes,
false);
164 DN_De.
resize(number_of_nodes, local_dimension,
false);
257 PropertiesType::Pointer pProperties )
const override;
267 Condition::Pointer Clone(
IndexType NewId,
277 void Initialize(
const ProcessInfo& rCurrentProcessInfo)
override;
287 void InitializeNonLinearIteration(
const ProcessInfo& rCurrentProcessInfo)
override;
295 void GetDofList(DofsVectorType& rConditionDofList,
296 const ProcessInfo& rCurrentProcessInfo )
const override;
301 void EquationIdVector(EquationIdVectorType& rResult,
302 const ProcessInfo& rCurrentProcessInfo )
const override;
307 void GetValuesVector(
Vector& rValues,
308 int Step = 0 )
const override;
313 void GetFirstDerivativesVector(
Vector& rValues,
314 int Step = 0 )
const override;
319 void GetSecondDerivativesVector(
Vector& rValues,
320 int Step = 0 )
const override;
333 void CalculateLocalSystem(
MatrixType& rLeftHandSideMatrix,
343 void CalculateRightHandSide(
VectorType& rRightHandSideVector,
352 void CalculateLeftHandSide(
MatrixType& rLeftHandSideMatrix,
361 void CalculateMassMatrix(
MatrixType& rMassMatrix,
370 void CalculateDampingMatrix(
MatrixType& rDampingMatrix,
383 void AddExplicitContribution(
const VectorType& rRHS,
393 std::vector<double>& rOutput,
407 int Check(
const ProcessInfo& rCurrentProcessInfo )
const override;
446 void InitializeExplicitContributions();
463 virtual unsigned int GetDofsSize()
const;
468 virtual void InitializeSystemMatrices(
MatrixType& rLeftHandSideMatrix,
470 Flags& rCalculationFlags);
482 const double& rPointNumber);
497 double& rIntegrationWeight);
504 double& rIntegrationWeight);
510 virtual void CalculateAndAddKuug(
MatrixType& rLeftHandSideMatrix,
512 double& rIntegrationWeight);
518 virtual void CalculateAndAddExternalForces(
Vector& rRightHandSideVector,
520 double& rIntegrationWeight);
525 virtual double& CalculateAndAddExternalEnergy(
double& rEnergy,
527 double& rIntegrationWeight,
532 void GetNodalDeltaMovements(
Vector& rValues,
const int& rNode);
596 void save(
Serializer& rSerializer)
const override;
General Boundary Condition base type for 3D and 2D geometries.
Definition: boundary_condition.hpp:49
KRATOS_DEFINE_LOCAL_FLAG(COMPUTE_RHS_VECTOR)
KRATOS_DEFINE_LOCAL_FLAG(COMPUTE_LHS_MATRIX)
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(BoundaryCondition)
Variable< double > VariableScalarType
Definition: boundary_condition.hpp:56
IntegrationMethod mThisIntegrationMethod
Definition: boundary_condition.hpp:433
Variable< array_1d< double, 3 > > VariableVectorType
Definition: boundary_condition.hpp:55
GeometryData::SizeType SizeType
Type for size.
Definition: boundary_condition.hpp:59
Base class for all Conditions.
Definition: condition.h:59
IntegrationMethod
Definition: geometry_data.h:76
std::size_t SizeType
Definition: geometry_data.h:173
Definition: amatrix_interface.h:41
void resize(std::size_t NewSize1, std::size_t NewSize2, bool preserve=0)
Definition: amatrix_interface.h:224
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
Variable class contains all information needed to store and retrive data from a data container.
Definition: variable.h:63
std::size_t IndexType
The definition of the index type.
Definition: key_hash.h:35
Modeler::Pointer Create(const std::string &ModelerName, Model &rModel, const Parameters ModelParameters)
Checks if the modeler is registered.
Definition: modeler_factory.cpp:30
pybind11::list CalculateOnIntegrationPoints(TObject &dummy, const Variable< TDataType > &rVariable, const ProcessInfo &rProcessInfo)
Definition: add_mesh_to_python.cpp:142
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
KratosZeroVector< double > ZeroVector
Definition: amatrix_interface.h:561
KratosZeroMatrix< double > ZeroMatrix
Definition: amatrix_interface.h:559
ModelPart::NodesContainerType NodesArrayType
Definition: gid_gauss_point_container.h:42
T & noalias(T &TheMatrix)
Definition: amatrix_interface.h:484
int dimension
Definition: isotropic_damage_automatic_differentiation.py:123
def load(f)
Definition: ode_solve.py:307
int j
Definition: quadrature.py:648
J
Definition: sensitivityMatrix.py:58
N
Definition: sensitivityMatrix.py:29
Definition: boundary_condition.hpp:79
double ExternalScalarValue
Definition: boundary_condition.hpp:100
Vector Tangent2
Definition: boundary_condition.hpp:106
Vector Normal
Definition: boundary_condition.hpp:104
GeometryType::JacobiansType J
Definition: boundary_condition.hpp:110
const GeometryType::ShapeFunctionsGradientsType & GetShapeFunctionsGradients()
Definition: boundary_condition.hpp:129
double ReferenceRadius
Definition: boundary_condition.hpp:90
void SetShapeFunctions(const Matrix &rNcontainer)
Definition: boundary_condition.hpp:120
Matrix DeltaPosition
Definition: boundary_condition.hpp:97
Vector Tangent1
Definition: boundary_condition.hpp:105
GeometryType::JacobiansType j
Definition: boundary_condition.hpp:109
void SetShapeFunctionsGradients(const GeometryType::ShapeFunctionsGradientsType &rDN_De)
Definition: boundary_condition.hpp:115
const Matrix & GetShapeFunctions()
Definition: boundary_condition.hpp:134
double CurrentRadius
Definition: boundary_condition.hpp:89
Vector N
Definition: boundary_condition.hpp:95
double Jacobian
Definition: boundary_condition.hpp:94
Matrix DN_De
Definition: boundary_condition.hpp:96
double GeometrySize
Definition: boundary_condition.hpp:93
Vector ExternalVectorValue
Definition: boundary_condition.hpp:101
void Initialize(const unsigned int &dimension, const unsigned int &local_dimension, const unsigned int &number_of_nodes)
Definition: boundary_condition.hpp:139
Definition: boundary_condition.hpp:190
void SetRightHandSideVector(VectorType &rRightHandSideVector)
Definition: boundary_condition.hpp:207
MatrixType & GetLeftHandSideMatrix()
Definition: boundary_condition.hpp:212
Flags CalculationFlags
Definition: boundary_condition.hpp:200
void SetLeftHandSideMatrix(MatrixType &rLeftHandSideMatrix)
Definition: boundary_condition.hpp:205
VectorType & GetRightHandSideVector()
Definition: boundary_condition.hpp:214