13 #if !defined(KRATOS_RELAXED_RESIDUALBASED_NEWTON_RAPHSON_STRATEGY)
14 #define KRATOS_RELAXED_RESIDUALBASED_NEWTON_RAPHSON_STRATEGY
62 template <
class TSparseSpace,
136 :
BaseType(rModelPart, ThisParameters),
156 typename TSchemeType::Pointer pScheme,
157 typename TLinearSolver::Pointer pNewLinearSolver,
158 typename TConvergenceCriteriaType::Pointer pNewConvergenceCriteria,
159 int MaxIterations = 30,
160 bool CalculateReactions =
false,
161 bool ReformDofSetAtEachStep =
false,
163 :
BaseType(rModelPart, pScheme, pNewLinearSolver, pNewConvergenceCriteria, MaxIterations, CalculateReactions, ReformDofSetAtEachStep,
MoveMeshFlag),
188 typename TSchemeType::Pointer pScheme,
189 typename TConvergenceCriteriaType::Pointer pNewConvergenceCriteria,
190 typename TBuilderAndSolverType::Pointer pNewBuilderAndSolver,
191 int MaxIterations = 30,
192 bool CalculateReactions =
false,
193 bool ReformDofSetAtEachStep =
false,
195 :
BaseType(rModelPart, pScheme, pNewConvergenceCriteria, pNewBuilderAndSolver, MaxIterations, CalculateReactions, ReformDofSetAtEachStep,
MoveMeshFlag),
240 typename TSchemeType::Pointer pScheme,
241 typename TLinearSolver::Pointer pNewLinearSolver,
242 typename TConvergenceCriteriaType::Pointer pNewConvergenceCriteria,
244 :
BaseType(rModelPart, pScheme, pNewLinearSolver, pNewConvergenceCriteria, Settings),
264 typename TSchemeType::Pointer pScheme,
265 typename TConvergenceCriteriaType::Pointer pNewConvergenceCriteria,
266 typename TBuilderAndSolverType::Pointer pNewBuilderAndSolver,
268 :
BaseType(rModelPart, pScheme, pNewConvergenceCriteria, pNewBuilderAndSolver, Settings),
289 if (p_builder_and_solver !=
nullptr) {
290 p_builder_and_solver->Clear();
434 typename SolvingStrategyType::Pointer
Create(
439 return Kratos::make_shared<ClassType>(rModelPart, ThisParameters);
458 typename TSchemeType::Pointer p_scheme =
GetScheme();
465 if (p_builder_and_solver->GetDofSetIsInitializedFlag() ==
false ||
470 p_builder_and_solver->SetUpDofSet(p_scheme, r_model_part);
476 p_builder_and_solver->SetUpSystem(r_model_part);
482 p_builder_and_solver->ResizeAndInitializeVectors(p_scheme,
mpA,
mpDx,
mpb,
496 p_builder_and_solver->InitializeSolutionStep(r_model_part, rA, rDx, rb);
499 p_scheme->InitializeSolutionStep(r_model_part, rA, rDx, rb);
504 TSparseSpace::SetToZero(rb);
505 p_builder_and_solver->BuildRHS(p_scheme, r_model_part, rb);
508 mpConvergenceCriteria->InitializeSolutionStep(r_model_part, p_builder_and_solver->GetDofSet(), rA, rDx, rb);
511 TSparseSpace::SetToZero(rb);
529 typename TSchemeType::Pointer p_scheme =
GetScheme();
541 p_scheme->FinalizeSolutionStep(r_model_part, rA, rDx, rb);
542 p_builder_and_solver->FinalizeSolutionStep(r_model_part, rA, rDx, rb);
543 mpConvergenceCriteria->FinalizeSolutionStep(r_model_part, p_builder_and_solver->GetDofSet(), rA, rDx, rb);
566 typename TSchemeType::Pointer p_scheme =
GetScheme();
568 auto& r_dof_set = p_builder_and_solver->GetDofSet();
575 unsigned int iteration_number = 1;
576 r_model_part.
GetProcessInfo()[NL_ITERATION_NUMBER] = iteration_number;
577 bool residual_is_updated =
false;
578 p_scheme->InitializeNonLinIteration(r_model_part, rA, rDx, rb);
584 TSparseSpace::SetToZero(rA);
585 TSparseSpace::SetToZero(rDx);
586 TSparseSpace::SetToZero(rb);
589 p_builder_and_solver->BuildAndSolveLinearizedOnPreviousIteration(p_scheme, r_model_part, rA, rDx, rb,
BaseType::MoveMeshFlag());
591 p_builder_and_solver->BuildAndSolve(p_scheme, r_model_part, rA, rDx, rb);
594 TSparseSpace::SetToZero(rDx);
595 TSparseSpace::SetToZero(rb);
596 p_builder_and_solver->BuildRHSAndSolve(p_scheme, r_model_part, rA, rDx, rb);
600 TSparseSpace::InplaceMult(rDx,
alpha);
603 p_scheme->FinalizeNonLinIteration(r_model_part, rA, rDx, rb);
608 TSparseSpace::SetToZero(rb);
610 p_builder_and_solver->BuildRHS(p_scheme, r_model_part, rb);
617 while (is_converged ==
false &&
621 r_model_part.
GetProcessInfo()[NL_ITERATION_NUMBER] = iteration_number;
623 p_scheme->InitializeNonLinIteration(r_model_part, rA, rDx, rb);
637 TSparseSpace::SetToZero(rA);
638 TSparseSpace::SetToZero(rDx);
639 TSparseSpace::SetToZero(rb);
641 p_builder_and_solver->BuildAndSolve(p_scheme, r_model_part, rA, rDx, rb);
642 TSparseSpace::InplaceMult(rDx,
alpha);
646 TSparseSpace::SetToZero(rDx);
647 TSparseSpace::SetToZero(rb);
649 p_builder_and_solver->BuildRHSAndSolve(p_scheme, r_model_part, rA, rDx, rb);
654 TSparseSpace::SetToZero(rDx);
655 TSparseSpace::SetToZero(rb);
657 p_builder_and_solver->BuildRHSAndSolve(p_scheme, r_model_part, rA, rDx, rb);
662 KRATOS_WARNING(
"NO DOFS") <<
"ATTENTION: no free DOFs!! " << std::endl;
671 p_scheme->FinalizeNonLinIteration(r_model_part, rA, rDx, rb);
674 residual_is_updated =
false;
676 if (is_converged ==
true)
680 TSparseSpace::SetToZero(rb);
682 p_builder_and_solver->BuildRHS(p_scheme, r_model_part, rb);
683 residual_is_updated =
true;
695 <<
"Convergence achieved after " << iteration_number <<
" / "
701 if (residual_is_updated ==
false)
715 p_builder_and_solver->CalculateReactions(p_scheme, r_model_part, rA, rDx, rb);
726 return "relaxed_newton_raphson_strategy";
802 std::string
Info()
const override
804 return "RelaxedResidualBasedNewtonRaphsonStrategy";
914 virtual void EchoInfo(
const unsigned int IterationNumber)
override
922 <<
"ATTENTION: max iterations ( " << mMaxIterationNumber
923 <<
" ) exceeded!" << std::endl;
Definition: builtin_timer.h:26
double ElapsedSeconds() const
Definition: builtin_timer.h:40
This is the base class to define the different convergence criterion considered.
Definition: convergence_criteria.h:58
Implicit solving strategy base class This is the base class from which we will derive all the implici...
Definition: implicit_solving_strategy.h:61
BaseType::TSystemVectorType TSystemVectorType
Definition: implicit_solving_strategy.h:72
void SetRebuildLevel(int Level) override
This sets the build level.
Definition: implicit_solving_strategy.h:207
int mRebuildLevel
Definition: implicit_solving_strategy.h:263
bool mStiffnessMatrixIsBuilt
The current rebuild level.
Definition: implicit_solving_strategy.h:264
BaseType::TSystemVectorPointerType TSystemVectorPointerType
Definition: implicit_solving_strategy.h:76
BaseType::TSystemMatrixPointerType TSystemMatrixPointerType
Definition: implicit_solving_strategy.h:74
BaseType::TSystemMatrixType TSystemMatrixType
Definition: implicit_solving_strategy.h:70
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
ProcessInfo & GetProcessInfo()
Definition: model_part.h:1746
This class provides to Kratos a data structure for I/O based on the standard of JSON.
Definition: kratos_parameters.h:59
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
This is the base Newton Raphson strategy.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:68
RelaxedResidualBasedNewtonRaphsonStrategy(ModelPart &rModelPart, typename TSchemeType::Pointer pScheme, typename TLinearSolver::Pointer pNewLinearSolver, typename TConvergenceCriteriaType::Pointer pNewConvergenceCriteria, int MaxIterations=30, bool CalculateReactions=false, bool ReformDofSetAtEachStep=false, bool MoveMeshFlag=false)
Definition: relaxed_residualbased_newton_rapshon_strategy.h:154
bool GetUseOldStiffnessInFirstIterationFlag()
Definition: relaxed_residualbased_newton_rapshon_strategy.h:383
void SetUseOldStiffnessInFirstIterationFlag(bool UseOldStiffnessInFirstIterationFlag)
This method sets the flag mFullUpdateFlag.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:376
RelaxedResidualBasedNewtonRaphsonStrategy(const RelaxedResidualBasedNewtonRaphsonStrategy &Other)
Definition: relaxed_residualbased_newton_rapshon_strategy.h:972
bool mKeepSystemConstantDuringIterations
Flag to set as initialized the strategy.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:898
BaseType::TSystemMatrixPointerType TSystemMatrixPointerType
Definition: relaxed_residualbased_newton_rapshon_strategy.h:105
void FinalizeSolutionStep() override
Performs all the required operations that should be done (for each step) after solving the solution s...
Definition: relaxed_residualbased_newton_rapshon_strategy.h:523
void SetInitializePerformedFlag(bool InitializePerformedFlag=true)
Definition: relaxed_residualbased_newton_rapshon_strategy.h:340
bool mSolutionStepIsInitialized
Definition: relaxed_residualbased_newton_rapshon_strategy.h:892
TSystemVectorPointerType mpDx
The pointer to the convergence criteria employed.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:867
BaseType::LocalSystemVectorType LocalSystemVectorType
Definition: relaxed_residualbased_newton_rapshon_strategy.h:101
TSystemVectorType & GetSystemVector() override
This method returns the RHS vector.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:757
SolvingStrategyType::Pointer Create(ModelPart &rModelPart, Parameters ThisParameters) const override
Create method.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:434
TConvergenceCriteriaType::Pointer mpConvergenceCriteria
The pointer to the builder and solver employed.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:865
static std::string Name()
Returns the name of the class as used in the settings (snake_case format)
Definition: relaxed_residualbased_newton_rapshon_strategy.h:724
TSchemeType::Pointer mpScheme
Definition: relaxed_residualbased_newton_rapshon_strategy.h:863
RelaxedResidualBasedNewtonRaphsonStrategy(ModelPart &rModelPart, Parameters ThisParameters)
Default constructor. (with parameters)
Definition: relaxed_residualbased_newton_rapshon_strategy.h:135
void InitializeSolutionStep() override
Performs all the required operations that should be done (for each step) before solving the solution ...
Definition: relaxed_residualbased_newton_rapshon_strategy.h:452
BaseType::TSystemVectorType TSystemVectorType
Definition: relaxed_residualbased_newton_rapshon_strategy.h:99
bool mInitializeWasPerformed
The maximum number of iterations, 30 by default.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:896
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:814
RelaxedResidualBasedNewtonRaphsonStrategy(ModelPart &rModelPart)
Definition: relaxed_residualbased_newton_rapshon_strategy.h:125
BaseType::TSystemMatrixType TSystemMatrixType
Definition: relaxed_residualbased_newton_rapshon_strategy.h:97
TBuilderAndSolverType::Pointer GetBuilderAndSolver()
Get method for the builder and solver.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:333
bool mReformDofSetAtEachStep
The LHS matrix of the system of equations.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:878
KRATOS_CLASS_POINTER_DEFINITION(RelaxedResidualBasedNewtonRaphsonStrategy)
void AssignSettings(const Parameters ThisParameters) override
This method assigns settings to member variables.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:930
ResidualBasedNewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver > BaseType
Definition: relaxed_residualbased_newton_rapshon_strategy.h:81
ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver > BaseStrategyType
Definition: relaxed_residualbased_newton_rapshon_strategy.h:79
BaseType::TBuilderAndSolverType TBuilderAndSolverType
Definition: relaxed_residualbased_newton_rapshon_strategy.h:85
TSystemVectorType & GetSolutionVector() override
This method returns the solution vector.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:768
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:808
void SetScheme(typename TSchemeType::Pointer pScheme)
Set method for the time scheme.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:310
bool GetReformDofSetAtEachStepFlag()
This method returns the flag mReformDofSetAtEachStep.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:402
unsigned int GetMaxIterationNumber()
This method gets the flag mMaxIterationNumber.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:420
TSparseSpace SparseSpaceType
Definition: relaxed_residualbased_newton_rapshon_strategy.h:89
RelaxedResidualBasedNewtonRaphsonStrategy< TSparseSpace, TDenseSpace, TLinearSolver > ClassType
Definition: relaxed_residualbased_newton_rapshon_strategy.h:83
bool GetCalculateReactionsFlag()
This method returns the flag mCalculateReactionsFlag.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:367
TSystemMatrixType & GetSystemMatrix() override
This method returns the LHS matrix.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:746
void SetCalculateReactionsFlag(bool CalculateReactionsFlag)
This method sets the flag mCalculateReactionsFlag.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:358
BaseType::TSchemeType TSchemeType
Definition: relaxed_residualbased_newton_rapshon_strategy.h:91
TSystemMatrixPointerType mpA
The RHS vector of the system of equations.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:869
void SetEchoLevel(int Level) override
It sets the level of echo for the solving strategy.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:425
BaseType::LocalSystemMatrixType LocalSystemMatrixType
Definition: relaxed_residualbased_newton_rapshon_strategy.h:103
~RelaxedResidualBasedNewtonRaphsonStrategy() override
Destructor.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:282
RelaxedResidualBasedNewtonRaphsonStrategy()
Definition: relaxed_residualbased_newton_rapshon_strategy.h:116
virtual void UpdateDatabase(TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb, const bool MoveMesh) override
Here the database is updated.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:900
TBuilderAndSolverType::Pointer mpBuilderAndSolver
The pointer to the time scheme employed.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:864
void SetKeepSystemConstantDuringIterations(bool Value)
Set method for the flag mKeepSystemConstantDuringIterations.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:779
bool mCalculateReactionsFlag
Flag telling if it is needed or not to compute the reactions.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:884
ConvergenceCriteria< TSparseSpace, TDenseSpace > TConvergenceCriteriaType
Definition: relaxed_residualbased_newton_rapshon_strategy.h:72
bool SolveSolutionStep() override
Solves the current step. This function returns true if a solution has been found, false otherwise.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:562
RelaxedResidualBasedNewtonRaphsonStrategy(ModelPart &rModelPart, typename TSchemeType::Pointer pScheme, typename TConvergenceCriteriaType::Pointer pNewConvergenceCriteria, typename TBuilderAndSolverType::Pointer pNewBuilderAndSolver, int MaxIterations=30, bool CalculateReactions=false, bool ReformDofSetAtEachStep=false, bool MoveMeshFlag=false)
Constructor specifying the builder and solver.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:186
TSchemeType::Pointer GetScheme()
Definition: relaxed_residualbased_newton_rapshon_strategy.h:319
void SetReformDofSetAtEachStepFlag(bool Flag)
This method sets the flag mReformDofSetAtEachStep.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:392
TSystemVectorPointerType mpb
The increment in the solution.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:868
bool GetKeepSystemConstantDuringIterations()
Get method for the flag mKeepSystemConstantDuringIterations.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:788
BaseType::TSystemVectorPointerType TSystemVectorPointerType
Definition: relaxed_residualbased_newton_rapshon_strategy.h:107
std::string Info() const override
Turn back information as a string.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:802
bool mUseOldStiffnessInFirstIteration
Flag telling if a full update of the database will be performed at the first iteration.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:890
RelaxedResidualBasedNewtonRaphsonStrategy(ModelPart &rModelPart, typename TSchemeType::Pointer pScheme, typename TConvergenceCriteriaType::Pointer pNewConvergenceCriteria, typename TBuilderAndSolverType::Pointer pNewBuilderAndSolver, Parameters Settings)
Constructor specifying the builder and solver and using Parameters.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:262
SolvingStrategy< TSparseSpace, TDenseSpace > SolvingStrategyType
Definition: relaxed_residualbased_newton_rapshon_strategy.h:77
void Clear() override
Clears the internal storage.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:444
unsigned int mMaxIterationNumber
Flag to set as initialized the solution step.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:894
virtual void MaxIterationsExceeded() override
This method prints information after reach the max number of iterations.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:919
BaseType::DofsArrayType DofsArrayType
Definition: relaxed_residualbased_newton_rapshon_strategy.h:95
bool GetInitializePerformedFlag()
This method gets the flag mInitializeWasPerformed.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:349
void SetMaxIterationNumber(unsigned int MaxIterationNumber)
This method sets the flag mMaxIterationNumber.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:411
void SetBuilderAndSolver(typename TBuilderAndSolverType::Pointer pNewBuilderAndSolver)
Definition: relaxed_residualbased_newton_rapshon_strategy.h:324
virtual void EchoInfo(const unsigned int IterationNumber) override
This method returns the components of the system of equations depending of the echo level.
Definition: relaxed_residualbased_newton_rapshon_strategy.h:914
BaseType::TDataType TDataType
Definition: relaxed_residualbased_newton_rapshon_strategy.h:87
void WriteDofInfo(std::string FileName, const TSystemVectorType &rDX)
Definition: relaxed_residualbased_newton_rapshon_strategy.h:935
RelaxedResidualBasedNewtonRaphsonStrategy(ModelPart &rModelPart, typename TSchemeType::Pointer pScheme, typename TLinearSolver::Pointer pNewLinearSolver, typename TConvergenceCriteriaType::Pointer pNewConvergenceCriteria, Parameters Settings)
Definition: relaxed_residualbased_newton_rapshon_strategy.h:238
This is the base Newton Raphson strategy.
Definition: residualbased_newton_raphson_strategy.h:66
virtual void UpdateDatabase(TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb, const bool MoveMesh)
Here the database is updated.
Definition: residualbased_newton_raphson_strategy.h:1278
Parameters GetDefaultParameters() const override
This method provides the defaults parameters to avoid conflicts between the different constructors.
Definition: residualbased_newton_raphson_strategy.h:1069
BaseType::TSchemeType TSchemeType
Definition: residualbased_newton_raphson_strategy.h:87
void AssignSettings(const Parameters ThisParameters) override
This method assigns settings to member variables.
Definition: residualbased_newton_raphson_strategy.h:1351
BaseType::TBuilderAndSolverType TBuilderAndSolverType
Definition: residualbased_newton_raphson_strategy.h:81
void SetEchoLevel(int Level) override
It sets the level of echo for the solving strategy.
Definition: residualbased_newton_raphson_strategy.h:599
void Clear() override
Clears the internal storage.
Definition: residualbased_newton_raphson_strategy.h:707
virtual void EchoInfo(const unsigned int IterationNumber)
This method returns the components of the system of equations depending of the echo level.
Definition: residualbased_newton_raphson_strategy.h:1298
void WriteDofInfo(std::string FileName, const TSystemVectorType &rDX)
Definition: residualbased_newton_raphson_strategy.h:1375
void SetScheme(typename TSchemeType::Pointer pScheme)
Set method for the time scheme.
Definition: residualbased_newton_raphson_strategy.h:466
Solving strategy base class This is the base class from which we will derive all the strategies (impl...
Definition: solving_strategy.h:64
TSparseSpace::VectorPointerType TSystemVectorPointerType
Definition: solving_strategy.h:77
TDenseSpace::MatrixType LocalSystemMatrixType
Definition: solving_strategy.h:79
TSparseSpace::DataType TDataType
Definition: solving_strategy.h:69
ModelPart & GetModelPart()
Operations to get the pointer to the model.
Definition: solving_strategy.h:350
int GetEchoLevel()
This returns the level of echo for the solving strategy.
Definition: solving_strategy.h:271
TSparseSpace::MatrixType TSystemMatrixType
Definition: solving_strategy.h:71
TSparseSpace::MatrixPointerType TSystemMatrixPointerType
Definition: solving_strategy.h:75
bool MoveMeshFlag()
This function returns the flag that says if the mesh is moved.
Definition: solving_strategy.h:290
TSparseSpace::VectorType TSystemVectorType
Definition: solving_strategy.h:73
virtual void MoveMesh()
This function is designed to move the mesh.
Definition: solving_strategy.h:330
TDenseSpace::VectorType LocalSystemVectorType
Definition: solving_strategy.h:81
static IndexType Size(VectorType const &rV)
return size of vector rV
Definition: ublas_space.h:190
#define KRATOS_CATCH(MoreInfo)
Definition: define.h:110
#define KRATOS_TRY
Definition: define.h:109
#define KRATOS_INFO_IF(label, conditional)
Definition: logger.h:251
#define KRATOS_WARNING(label)
Definition: logger.h:265
string FileName
Export to vtk.
Definition: GenerateWind.py:175
TSpaceType::VectorPointerType CreateEmptyVectorPointer(TSpaceType &dummy)
Definition: add_strategies_to_python.cpp:187
TSpaceType::MatrixPointerType CreateEmptyMatrixPointer(TSpaceType &dummy)
Definition: add_strategies_to_python.cpp:181
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
alpha
Definition: generate_convection_diffusion_explicit_element.py:113
double precision function mb(a)
Definition: TensorModule.f:849