45 #if !defined(KRATOS_PFEM2_MONOLITHIC_SLIP_SCHEME )
46 #define KRATOS_PFEM2_MONOLITHIC_SLIP_SCHEME
53 #include "boost/smart_ptr.hpp"
94 template<
class TSparseSpace,
134 Scheme<TSparseSpace, TDenseSpace>(),
135 mRotationTool(DomainSize,DomainSize+1,SLIP)
182 int NumThreads = OpenMPUtils::GetNumThreads();
195 if (itDof->IsFree()) {
236 mRotationTool.
Rotate(LHS_Contribution,RHS_Contribution,rCurrentElement.
GetGeometry());
318 double DeltaTime = CurrentProcessInfo[DELTA_TIME];
321 KRATOS_THROW_ERROR(std::logic_error,
"detected delta_time = 0 ... check if the time step is created correctly for the current model part",
"");
Base class for all Conditions.
Definition: condition.h:59
virtual void EquationIdVector(EquationIdVectorType &rResult, const ProcessInfo &rCurrentProcessInfo) const
Definition: condition.h:260
virtual void CalculateRightHandSide(VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo)
Definition: condition.h:440
virtual void CalculateLocalSystem(MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo)
Definition: condition.h:408
Base class for all Elements.
Definition: element.h:60
virtual void CalculateRightHandSide(VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo)
Definition: element.h:437
virtual void EquationIdVector(EquationIdVectorType &rResult, const ProcessInfo &rCurrentProcessInfo) const
Definition: element.h:258
std::vector< DofType::Pointer > DofsVectorType
Definition: element.h:100
virtual void CalculateLocalSystem(MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo)
Definition: element.h:405
std::vector< std::size_t > EquationIdVectorType
Definition: element.h:98
GeometryType & GetGeometry()
Returns the reference of the geometry.
Definition: geometrical_object.h:158
Geometry base class.
Definition: geometry.h:71
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
ProcessInfo & GetProcessInfo()
Definition: model_part.h:1746
static void DivideInPartitions(const int NumTerms, const int NumThreads, PartitionVector &Partitions)
Divide an array of length NumTerms between NumThreads threads.
Definition: openmp_utils.h:158
static int ThisThread()
Wrapper for omp_get_thread_num().
Definition: openmp_utils.h:108
std::vector< int > PartitionVector
Vector type for the output of DivideInPartitions method.
Definition: openmp_utils.h:53
Definition: pfem_2_monolithic_slip_scheme.h:97
BaseType::LocalSystemMatrixType LocalSystemMatrixType
Definition: pfem_2_monolithic_slip_scheme.h:120
BaseType::TSystemMatrixType TSystemMatrixType
Definition: pfem_2_monolithic_slip_scheme.h:114
virtual void Update(ModelPart &r_model_part, DofsArrayType &rDofSet, TSystemMatrixType &A, TSystemVectorType &Dv, TSystemVectorType &b) override
Definition: pfem_2_monolithic_slip_scheme.h:155
PFEM2MonolithicSlipScheme(unsigned int DomainSize)
Definition: pfem_2_monolithic_slip_scheme.h:132
void CalculateRHSContribution(Element &rCurrentElement, LocalSystemVectorType &RHS_Contribution, Element::EquationIdVectorType &EquationId, const ProcessInfo &CurrentProcessInfo) override
This function is designed to calculate just the RHS contribution.
Definition: pfem_2_monolithic_slip_scheme.h:242
BaseType::DofsArrayType DofsArrayType
Definition: pfem_2_monolithic_slip_scheme.h:110
Scheme< TSparseSpace, TDenseSpace > BaseType
Definition: pfem_2_monolithic_slip_scheme.h:106
void FinalizeSolutionStep(ModelPart &rModelPart, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b) override
Function called once at the end of a solution step, after convergence is reached if an iterative proc...
Definition: pfem_2_monolithic_slip_scheme.h:389
virtual void CalculateRHSContribution(Condition &rCurrentCondition, LocalSystemVectorType &RHS_Contribution, Element::EquationIdVectorType &EquationId, const ProcessInfo &rCurrentProcessInfo) override
Functions totally analogous to the precedent but applied to the "condition" objects.
Definition: pfem_2_monolithic_slip_scheme.h:283
virtual void BasicUpdateOperations(ModelPart &rModelPart, DofsArrayType &rDofSet, TSystemMatrixType &A, TSystemVectorType &Dv, TSystemVectorType &b)
Definition: pfem_2_monolithic_slip_scheme.h:174
virtual void CalculateSystemContributions(Condition &rCurrentCondition, LocalSystemMatrixType &LHS_Contribution, LocalSystemVectorType &RHS_Contribution, Element::EquationIdVectorType &EquationId, const ProcessInfo &CurrentProcessInfo) override
Definition: pfem_2_monolithic_slip_scheme.h:264
KRATOS_CLASS_POINTER_DEFINITION(PFEM2MonolithicSlipScheme)
BaseType::TSystemVectorType TSystemVectorType
Definition: pfem_2_monolithic_slip_scheme.h:116
Element::DofsVectorType DofsVectorType
Definition: pfem_2_monolithic_slip_scheme.h:112
virtual void FinalizeNonLinIteration(ModelPart &rModelPart, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b) override
Function to be called when it is needed to finalize an iteration. It is designed to be called at the ...
Definition: pfem_2_monolithic_slip_scheme.h:337
BaseType::TDataType TDataType
Definition: pfem_2_monolithic_slip_scheme.h:108
virtual void InitializeNonLinIteration(ModelPart &r_model_part, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b) override
unction to be called when it is needed to initialize an iteration. It is designed to be called at the...
Definition: pfem_2_monolithic_slip_scheme.h:327
Element::GeometryType GeometryType
Definition: pfem_2_monolithic_slip_scheme.h:122
virtual ~PFEM2MonolithicSlipScheme()
Definition: pfem_2_monolithic_slip_scheme.h:142
void CalculateSystemContributions(Element &rCurrentElement, LocalSystemMatrixType &LHS_Contribution, LocalSystemVectorType &RHS_Contribution, Element::EquationIdVectorType &EquationId, const ProcessInfo &CurrentProcessInfo) override
Definition: pfem_2_monolithic_slip_scheme.h:220
BaseType::LocalSystemVectorType LocalSystemVectorType
Definition: pfem_2_monolithic_slip_scheme.h:118
virtual void InitializeSolutionStep(ModelPart &r_model_part, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b) override
Function called once at the beginning of each solution step.
Definition: pfem_2_monolithic_slip_scheme.h:309
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
boost::indirect_iterator< typename TContainerType::iterator > iterator
Definition: pointer_vector_set.h:95
size_type size() const
Returns the number of elements in the container.
Definition: pointer_vector_set.h:502
iterator begin()
Returns an iterator pointing to the beginning of the container.
Definition: pointer_vector_set.h:278
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
This class provides the implementation of the basic tasks that are needed by the solution strategy.
Definition: scheme.h:56
typename TSparseSpace::MatrixType TSystemMatrixType
Matrix type definition.
Definition: scheme.h:71
virtual void EquationId(const Element &rElement, Element::EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo)
This method gets the eqaution id corresponding to the current element.
Definition: scheme.h:636
typename TSparseSpace::VectorType TSystemVectorType
Vector type definition.
Definition: scheme.h:74
typename TDenseSpace::VectorType LocalSystemVectorType
Local system vector type definition.
Definition: scheme.h:80
virtual void FinalizeSolutionStep(ModelPart &rModelPart, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b)
Function called once at the end of a solution step, after convergence is reached if an iterative proc...
Definition: scheme.h:294
virtual void InitializeSolutionStep(ModelPart &rModelPart, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b)
Function called once at the beginning of each solution step.
Definition: scheme.h:272
typename TSparseSpace::DataType TDataType
Data type definition.
Definition: scheme.h:68
typename TDenseSpace::MatrixType LocalSystemMatrixType
Local system matrix type definition.
Definition: scheme.h:77
#define KRATOS_THROW_ERROR(ExceptionType, ErrorMessage, MoreInfo)
Definition: define.h:77
#define KRATOS_CATCH(MoreInfo)
Definition: define.h:110
#define KRATOS_TRY
Definition: define.h:109
Parameters GetValue(Parameters &rParameters, const std::string &rEntry)
Definition: add_kratos_parameters_to_python.cpp:53
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
b
Definition: generate_total_lagrangian_mixed_volumetric_strain_element.py:31
int k
Definition: quadrature.py:595
A
Definition: sensitivityMatrix.py:70