11 #if !defined(KRATOS_EIGENSOLVER_SCHEME_H_INCLUDED)
12 #define KRATOS_EIGENSOLVER_SCHEME_H_INCLUDED
54 template<
class TSparseSpace,
99 Element::Pointer pCurrentElement,
108 if (rCurrentProcessInfo[BUILD_LEVEL] == 1)
110 pCurrentElement->CalculateMassMatrix(rLHS_Contribution,rCurrentProcessInfo);
111 std::size_t LocalSize = rLHS_Contribution.size1();
112 if (rRHS_Contribution.size() != LocalSize)
113 rRHS_Contribution.resize(LocalSize,
false);
116 else if (rCurrentProcessInfo[BUILD_LEVEL] == 2)
118 pCurrentElement->CalculateLocalSystem(rLHS_Contribution,rRHS_Contribution,rCurrentProcessInfo);
125 pCurrentElement->EquationIdVector(rEquationId,rCurrentProcessInfo);
131 Element::Pointer pCurrentElement,
139 RHS_Contribution.resize(rLHS_Contribution.size1(),
false);
145 rCurrentProcessInfo);
151 Condition::Pointer pCurrentCondition,
159 if (rCurrentProcessInfo[BUILD_LEVEL] == 1)
161 pCurrentCondition->CalculateMassMatrix(rLHS_Contribution,rCurrentProcessInfo);
162 std::size_t LocalSize = rLHS_Contribution.size1();
163 if (rRHS_Contribution.size() != LocalSize)
165 rRHS_Contribution.resize(LocalSize,
false);
169 else if (rCurrentProcessInfo[BUILD_LEVEL] == 2)
171 pCurrentCondition->CalculateLocalSystem(rLHS_Contribution,rRHS_Contribution,rCurrentProcessInfo);
178 pCurrentCondition->EquationIdVector(rEquationId,rCurrentProcessInfo);
184 Condition::Pointer pCurrentCondition,
192 RHS_Contribution.resize(rLHS_Contribution.size1(),
false);
198 rCurrentProcessInfo);
std::vector< std::size_t > EquationIdVectorType
Definition: condition.h:98
An adapter scheme for obtaining mass and stiffness matrices for dynamic eigenvalue problems.
Definition: eigensolver_scheme.hpp:58
void Condition_CalculateSystemContributions(Condition::Pointer pCurrentCondition, LocalSystemMatrixType &rLHS_Contribution, LocalSystemVectorType &rRHS_Contribution, Condition::EquationIdVectorType &rEquationId, ProcessInfo &rCurrentProcessInfo) override
Definition: eigensolver_scheme.hpp:150
EigensolverScheme()
Default Constructor.
Definition: eigensolver_scheme.hpp:76
void Calculate_LHS_Contribution(Element::Pointer pCurrentElement, LocalSystemMatrixType &rLHS_Contribution, Element::EquationIdVectorType &rEquationId, ProcessInfo &rCurrentProcessInfo) override
Definition: eigensolver_scheme.hpp:130
void Condition_Calculate_LHS_Contribution(Condition::Pointer pCurrentCondition, LocalSystemMatrixType &rLHS_Contribution, Condition::EquationIdVectorType &rEquationId, ProcessInfo &rCurrentProcessInfo) override
Definition: eigensolver_scheme.hpp:183
BaseType::LocalSystemVectorType LocalSystemVectorType
Definition: eigensolver_scheme.hpp:68
BaseType::LocalSystemMatrixType LocalSystemMatrixType
Definition: eigensolver_scheme.hpp:69
SolutionScheme< TSparseSpace, TDenseSpace > BaseType
Definition: eigensolver_scheme.hpp:65
EigensolverScheme(Flags &rOptions)
Constructor.
Definition: eigensolver_scheme.hpp:82
KRATOS_CLASS_POINTER_DEFINITION(EigensolverScheme)
void CalculateSystemContributions(Element::Pointer pCurrentElement, LocalSystemMatrixType &rLHS_Contribution, LocalSystemVectorType &rRHS_Contribution, Element::EquationIdVectorType &rEquationId, ProcessInfo &rCurrentProcessInfo) override
Definition: eigensolver_scheme.hpp:98
~EigensolverScheme() override
Destructor.
Definition: eigensolver_scheme.hpp:88
BaseType::SolutionSchemePointerType BasePointerType
Definition: eigensolver_scheme.hpp:66
std::vector< std::size_t > EquationIdVectorType
Definition: element.h:98
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
Solution scheme base class.
Definition: solution_scheme.hpp:54
SolutionSchemeType::Pointer SolutionSchemePointerType
Definition: solution_scheme.hpp:60
TDenseSpace::MatrixType LocalSystemMatrixType
Definition: solution_scheme.hpp:66
TDenseSpace::VectorType LocalSystemVectorType
Definition: solution_scheme.hpp:67
#define KRATOS_CATCH(MoreInfo)
Definition: define.h:110
#define KRATOS_TRY
Definition: define.h:109
#define KRATOS_ERROR
Definition: exception.h:161
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
KratosZeroVector< double > ZeroVector
Definition: amatrix_interface.h:561
T & noalias(T &TheMatrix)
Definition: amatrix_interface.h:484