Skip to content

Commit e64cf39

Browse files
authored
Merge pull request #14260 from KratosMultiphysics/core/make_variable_constexpr
[Core] Making Variable and VariableData constexpr
2 parents abdbdec + e93070b commit e64cf39

47 files changed

Lines changed: 399 additions & 689 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

applications/CoSimulationApplication/custom_utilities/feti_dynamic_coupling_utilities.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ namespace Kratos
182182
KRATOS_TRY
183183

184184
const SizeType dim = mpOriginDomain->ElementsBegin()->GetGeometry().WorkingSpaceDimension();
185-
Variable< array_1d<double, 3> >& equilibrium_variable = GetEquilibriumVariable();
185+
const Variable< array_1d<double, 3> >& equilibrium_variable = GetEquilibriumVariable();
186186

187187
SparseMatrixType expanded_mapper;
188188
GetExpandedMappingMatrix(expanded_mapper, dim);
@@ -819,7 +819,7 @@ namespace Kratos
819819
};
820820

821821
template<class TSparseSpace, class TDenseSpace>
822-
Variable< array_1d<double, 3> >& FetiDynamicCouplingUtilities<TSparseSpace, TDenseSpace>::GetEquilibriumVariable()
822+
const Variable< array_1d<double, 3> >& FetiDynamicCouplingUtilities<TSparseSpace, TDenseSpace>::GetEquilibriumVariable()
823823
{
824824
if (mEquilibriumVariable == EquilibriumVariable::Velocity) return VELOCITY;
825825
else if (mEquilibriumVariable == EquilibriumVariable::Displacement) return DISPLACEMENT;

applications/CoSimulationApplication/custom_utilities/feti_dynamic_coupling_utilities.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ namespace Kratos
159159

160160
void PrintInterfaceKinematics(const Variable< array_1d<double, 3> >& rVariable, const SolverIndex solverIndex);
161161

162-
Variable< array_1d<double, 3> >& GetEquilibriumVariable();
162+
const Variable< array_1d<double, 3> >& GetEquilibriumVariable();
163163

164164
}; // namespace FetiDynamicCouplingUtilities.
165165

applications/ContactStructuralMechanicsApplication/custom_processes/alm_variables_calculation_process.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// KRATOS ______ __ __ _____ __ __ __
22
// / ____/___ ____ / /_____ ______/ /_/ ___// /________ _______/ /___ ___________ _/ /
3-
// / / / __ \/ __ \/ __/ __ `/ ___/ __/\__ \/ __/ ___/ / / / ___/ __/ / / / ___/ __ `/ /
4-
// / /___/ /_/ / / / / /_/ /_/ / /__/ /_ ___/ / /_/ / / /_/ / /__/ /_/ /_/ / / / /_/ / /
3+
// / / / __ \/ __ \/ __/ __ `/ ___/ __/\__ \/ __/ ___/ / / / ___/ __/ / / / ___/ __ `/ /
4+
// / /___/ /_/ / / / / /_/ /_/ / /__/ /_ ___/ / /_/ / / /_/ / /__/ /_/ /_/ / / / /_/ / /
55
// \____/\____/_/ /_/\__/\__,_/\___/\__//____/\__/_/ \__,_/\___/\__/\__,_/_/ \__,_/_/ MECHANICS
66
//
77
// License: BSD License
@@ -78,7 +78,7 @@ class KRATOS_API(CONTACT_STRUCTURAL_MECHANICS_APPLICATION) ALMVariablesCalculati
7878
/// Default constructor.
7979
ALMVariablesCalculationProcess(
8080
ModelPart& rThisModelPart,
81-
Variable<double>& rNodalLengthVariable = NODAL_H,
81+
const Variable<double>& rNodalLengthVariable = NODAL_H,
8282
Parameters ThisParameters = Parameters(R"({})")
8383
):mrThisModelPart(rThisModelPart),
8484
mrNodalLengthVariable(rNodalLengthVariable)
@@ -184,12 +184,12 @@ class KRATOS_API(CONTACT_STRUCTURAL_MECHANICS_APPLICATION) ALMVariablesCalculati
184184
///@name Member Variables
185185
///@{
186186

187-
ModelPart& mrThisModelPart; /// The main model part
188-
Variable<double>& mrNodalLengthVariable; /// The variable used to messure the length of the element
189-
double mFactorStiffness; /// The proportion between stiffness and penalty/scale factor
190-
double mPenaltyScale; /// The penalty/scale factor proportion
191-
bool mComputeScaleFactor; /// If compute the scale factor
192-
bool mComputePenalty; /// If compute the penalty
187+
ModelPart& mrThisModelPart; /// The main model part
188+
const Variable<double>& mrNodalLengthVariable; /// The variable used to messure the length of the element
189+
double mFactorStiffness; /// The proportion between stiffness and penalty/scale factor
190+
double mPenaltyScale; /// The penalty/scale factor proportion
191+
bool mComputeScaleFactor; /// If compute the scale factor
192+
bool mComputePenalty; /// If compute the penalty
193193

194194
///@}
195195
///@name Private Operators

applications/DEMApplication/custom_strategies/strategies/explicit_solver_strategy.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -944,7 +944,7 @@ namespace Kratos {
944944
double node_area = rNode.FastGetSolutionStepValue(DEM_NODAL_AREA);
945945
double& shear_stress = rNode.FastGetSolutionStepValue(SHEAR_STRESS);
946946
array_1d<double, 3>& node_rhs_tang = rNode.FastGetSolutionStepValue(TANGENTIAL_ELASTIC_FORCES);
947-
947+
948948
if (node_area > 0.0){
949949
node_pressure = node_pressure / node_area;
950950
shear_stress = GeometryFunctions::module(node_rhs_tang) / node_area;
@@ -954,7 +954,7 @@ namespace Kratos {
954954
KRATOS_CATCH("")
955955
}
956956

957-
void ExplicitSolverStrategy::SetFlagAndVariableToNodes(const Kratos::Flags& r_flag_name, ComponentOf3ComponentsVariableType& r_variable_to_set, const double value, NodesArrayType& r_nodes_array) {
957+
void ExplicitSolverStrategy::SetFlagAndVariableToNodes(const Kratos::Flags& r_flag_name, const ComponentOf3ComponentsVariableType& r_variable_to_set, const double value, NodesArrayType& r_nodes_array) {
958958
KRATOS_TRY
959959

960960
block_for_each(r_nodes_array, [&](ModelPart::NodeType& rNode) {
@@ -964,7 +964,7 @@ namespace Kratos {
964964
KRATOS_CATCH("")
965965
}
966966

967-
void ExplicitSolverStrategy::SetVariableToNodes(ComponentOf3ComponentsVariableType& r_variable_to_set, const double value, NodesArrayType& r_nodes_array) {
967+
void ExplicitSolverStrategy::SetVariableToNodes(const ComponentOf3ComponentsVariableType& r_variable_to_set, const double value, NodesArrayType& r_nodes_array) {
968968
KRATOS_TRY
969969
block_for_each(r_nodes_array, [&](ModelPart::NodeType& rNode) {
970970
rNode.FastGetSolutionStepValue(r_variable_to_set) = value;
@@ -1324,7 +1324,7 @@ namespace Kratos {
13241324

13251325
KRATOS_CATCH("")
13261326
}
1327-
1327+
13281328
void ExplicitSolverStrategy::SetNormalRadiiOnAllParticles(ModelPart& r_model_part) {
13291329
KRATOS_TRY
13301330

@@ -1883,7 +1883,7 @@ namespace Kratos {
18831883
}
18841884

18851885
double ExplicitSolverStrategy::ComputeCoordinationNumber(double& standard_dev) {
1886-
1886+
18871887
KRATOS_TRY
18881888

18891889
return 0.0;

applications/DEMApplication/custom_strategies/strategies/explicit_solver_strategy.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,8 +227,8 @@ namespace Kratos {
227227
virtual void CalculateConditionsRHSAndAdd();
228228
void ClearFEMForces();
229229
void CalculateNodalPressuresAndStressesOnWalls();
230-
void SetFlagAndVariableToNodes(const Kratos::Flags& r_flag_name, ComponentOf3ComponentsVariableType& r_variable_to_set, const double value, NodesArrayType& r_nodes_array);
231-
void SetVariableToNodes(ComponentOf3ComponentsVariableType& r_variable_to_set, const double value, NodesArrayType& r_nodes_array);
230+
void SetFlagAndVariableToNodes(const Kratos::Flags& r_flag_name, const ComponentOf3ComponentsVariableType& r_variable_to_set, const double value, NodesArrayType& r_nodes_array);
231+
void SetVariableToNodes(const ComponentOf3ComponentsVariableType& r_variable_to_set, const double value, NodesArrayType& r_nodes_array);
232232
void ResetPrescribedMotionFlagsRespectingImposedDofs();
233233
void ApplyPrescribedBoundaryConditions();
234234
void ApplyInitialConditions();

applications/FSIApplication/tests/cpp_tests/test_partitioned_fsi_utilities.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -117,18 +117,18 @@ namespace Testing {
117117

118118
void AccessComputeConsistentResidual(
119119
ModelPart &rModelPart,
120-
Variable<TValueType> &rOriginalVariable,
121-
Variable<TValueType> &rModifiedVariable,
122-
Variable<TValueType> &rResidualVariable)
120+
const Variable<TValueType> &rOriginalVariable,
121+
const Variable<TValueType> &rModifiedVariable,
122+
const Variable<TValueType> &rResidualVariable)
123123
{
124124
this->ComputeConsistentResidual(rModelPart, rOriginalVariable, rModifiedVariable, rResidualVariable);
125125
}
126126

127127
void AccessComputeNodeByNodeResidual(
128128
ModelPart &rModelPart,
129-
Variable<TValueType> &rOriginalVariable,
130-
Variable<TValueType> &rModifiedVariable,
131-
Variable<TValueType> &rResidualVariable)
129+
const Variable<TValueType> &rOriginalVariable,
130+
const Variable<TValueType> &rModifiedVariable,
131+
const Variable<TValueType> &rResidualVariable)
132132
{
133133
this->ComputeNodeByNodeResidual(rModelPart, rOriginalVariable, rModifiedVariable, rResidualVariable);
134134
}

applications/FluidDynamicsApplication/custom_utilities/dynamic_smagorinsky_utilities.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ class DynamicSmagorinskyUtils
303303
Possible values for the variable: 1.0 inlet, 2.0 bridge surface, 3.0 outlet, 0.0 otherwise
304304
@param rThisVariable The Kratos variable used to identify the boundary
305305
*/
306-
void CorrectFlagValues(Variable<double>& rThisVariable = FLAG_VARIABLE)
306+
void CorrectFlagValues(const Variable<double>& rThisVariable = FLAG_VARIABLE)
307307
{
308308
// Loop over coarse mesh to evaluate all terms that do not involve the fine mesh
309309
const int NumThreads = ParallelUtilities::GetNumThreads();

applications/GeoMechanicsApplication/custom_strategies/schemes/load_stepping_scheme.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ class LoadSteppingScheme : public GeoMechanicsStaticScheme<TSparseSpace, TDenseS
121121
}
122122

123123
std::map<std::size_t, TLocalSystemVectorType> CalculateElementForces(ModelPart& rModelPart,
124-
Variable<Vector>& rForces)
124+
const Variable<Vector>& rForces)
125125
{
126126
std::map<std::size_t, TLocalSystemVectorType> result;
127127
std::ranges::transform(rModelPart.Elements(), std::inserter(result, result.end()),

applications/GeoMechanicsApplication/custom_workflows/dgeoflow.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ KratosExecute::ConvergenceCriteriaType::Pointer KratosExecute::setup_criteria_dg
9090
{
9191
const double rel_tol = 1.0e-4;
9292
const double abs_tol = 1.0e-9;
93-
VariableData* p_water_pres = &WATER_PRESSURE;
93+
const VariableData* p_water_pres = &WATER_PRESSURE;
9494
KratosExecute::ConvergenceVariableListType convergence_settings{std::make_tuple(p_water_pres, rel_tol, abs_tol)};
9595
return std::make_shared<KratosExecute::MixedGenericCriteriaType>(convergence_settings);
9696
}

applications/GeoMechanicsApplication/geo_mechanics_application_variables.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -150,11 +150,6 @@ KRATOS_DEFINE_APPLICATION_VARIABLE(GEO_MECHANICS_APPLICATION, double, ENGINEERIN
150150
KRATOS_DEFINE_APPLICATION_VARIABLE(GEO_MECHANICS_APPLICATION, double, GREEN_LAGRANGE_VOLUMETRIC_STRAIN)
151151
KRATOS_DEFINE_APPLICATION_VARIABLE(GEO_MECHANICS_APPLICATION, double, GREEN_LAGRANGE_VON_MISES_STRAIN)
152152

153-
// Nodal load variables
154-
KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(STRUCTURAL_MECHANICS_APPLICATION, POINT_LOAD)
155-
KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(STRUCTURAL_MECHANICS_APPLICATION, LINE_LOAD)
156-
KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(STRUCTURAL_MECHANICS_APPLICATION, SURFACE_LOAD)
157-
158153
KRATOS_DEFINE_APPLICATION_VARIABLE(GEO_MECHANICS_APPLICATION, bool, CONSIDER_GEOMETRIC_STIFFNESS)
159154

160155
// Gap/closure

0 commit comments

Comments
 (0)