Skip to content

Commit 4a80e44

Browse files
committed
Remove pre_evaluate in Scatra
1 parent 9e65f78 commit 4a80e44

15 files changed

+59
-218
lines changed

src/levelset/4C_levelset_algorithm_reinit.cpp

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414
#include "4C_linalg_utils_sparse_algebra_create.hpp"
1515
#include "4C_linear_solver_method_linalg.hpp"
1616
#include "4C_scatra_ele_action.hpp"
17+
#include "4C_scatra_ele_parameter_lsreinit.hpp"
18+
#include "4C_scatra_ele_parameter_std.hpp"
19+
#include "4C_scatra_ele_parameter_timint.hpp"
1720
#include "4C_utils_parameter_list.hpp"
1821

1922
#include <list>
@@ -63,10 +66,6 @@ void ScaTra::LevelSetAlgorithm::set_reinitialization_element_parameters(
6366
// create element parameter list
6467
Teuchos::ParameterList eleparams;
6568

66-
// set action for elements
67-
Core::Utils::add_enum_class_to_parameter_list<ScaTra::Action>(
68-
"action", ScaTra::Action::set_lsreinit_scatra_parameter, eleparams);
69-
7069
// reinitialization equation is given in convective form
7170
eleparams.set<Inpar::ScaTra::ConvForm>("convform", Inpar::ScaTra::convform_convective);
7271

@@ -114,23 +113,23 @@ void ScaTra::LevelSetAlgorithm::set_reinitialization_element_parameters(
114113
"DEFINITION_ASSGD", eleparams.sublist("REINITIALIZATION")
115114
.get<Inpar::ScaTra::AssgdType>("DEFINITION_ARTDIFFREINIT"));
116115

117-
// call standard loop over elements
118-
discret_->evaluate(eleparams, nullptr, nullptr, nullptr, nullptr, nullptr);
116+
// set general parameters first
117+
Discret::Elements::ScaTraEleParameterStd::instance(discret_->name())->set_parameters(eleparams);
119118

120-
return;
119+
// set additional, problem-dependent parameters
120+
Discret::Elements::ScaTraEleParameterLsReinit::instance(discret_->name())
121+
->set_parameters(eleparams);
121122
}
122123

123124

125+
124126
/*----------------------------------------------------------------------*
125127
| set time parameters for reinitialization equation rasthofer 12/13 |
126128
*----------------------------------------------------------------------*/
127129
void ScaTra::LevelSetAlgorithm::set_reinitialization_element_time_parameters()
128130
{
129131
Teuchos::ParameterList eleparams;
130132

131-
Core::Utils::add_enum_class_to_parameter_list<ScaTra::Action>(
132-
"action", ScaTra::Action::set_time_parameter, eleparams);
133-
134133
eleparams.set<bool>("using generalized-alpha time integration", false);
135134
eleparams.set<bool>("using stationary formulation", false);
136135
// reinitialization equation only implemented incrementally, since it is nonlinear
@@ -141,10 +140,8 @@ void ScaTra::LevelSetAlgorithm::set_reinitialization_element_time_parameters()
141140
eleparams.set<double>("time factor", thetareinit_ * dtau_);
142141
eleparams.set<double>("alpha_F", 1.0);
143142

144-
// call standard loop over elements
145-
discret_->evaluate(eleparams, nullptr, nullptr, nullptr, nullptr, nullptr);
146-
147-
return;
143+
Discret::Elements::ScaTraEleParameterTimInt::instance(discret_->name())
144+
->set_parameters(eleparams);
148145
}
149146

150147

src/scatra/4C_scatra_timint_bdf2.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include "4C_io.hpp"
1414
#include "4C_linalg_utils_sparse_algebra_create.hpp"
1515
#include "4C_scatra_ele_action.hpp"
16+
#include "4C_scatra_ele_parameter_timint.hpp"
1617
#include "4C_scatra_timint_meshtying_strategy_base.hpp"
1718
#include "4C_scatra_turbulence_hit_scalar_forcing.hpp"
1819
#include "4C_utils_parameter_list.hpp"
@@ -96,8 +97,6 @@ void ScaTra::TimIntBDF2::set_element_time_parameter(bool forcedincrementalsolver
9697
{
9798
Teuchos::ParameterList eleparams;
9899

99-
Core::Utils::add_enum_class_to_parameter_list<ScaTra::Action>(
100-
"action", ScaTra::Action::set_time_parameter, eleparams);
101100
eleparams.set<bool>("using generalized-alpha time integration", false);
102101
eleparams.set<bool>("using stationary formulation", false);
103102
if (!forcedincrementalsolver)
@@ -114,8 +113,8 @@ void ScaTra::TimIntBDF2::set_element_time_parameter(bool forcedincrementalsolver
114113
else
115114
eleparams.set<double>("time derivative factor", 3.0 / (2.0 * dta_));
116115

117-
// call standard loop over elements
118-
discret_->evaluate(eleparams, nullptr, nullptr, nullptr, nullptr, nullptr);
116+
Discret::Elements::ScaTraEleParameterTimInt::instance(discret_->name())
117+
->set_parameters(eleparams);
119118
}
120119

121120
/*--------------------------------------------------------------------------*

src/scatra/4C_scatra_timint_elch.cpp

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
#include "4C_mat_list.hpp"
2323
#include "4C_rebalance_binning_based.hpp"
2424
#include "4C_scatra_ele_action.hpp"
25+
#include "4C_scatra_ele_parameter_elch.hpp"
26+
#include "4C_scatra_ele_parameter_elch_diffcond.hpp"
2527
#include "4C_scatra_resulttest_elch.hpp"
2628
#include "4C_scatra_timint_elch_service.hpp"
2729
#include "4C_scatra_timint_meshtying_strategy_fluid_elch.hpp"
@@ -413,26 +415,25 @@ void ScaTra::ScaTraTimIntElch::setup_conc_pot_pot_split()
413415
void ScaTra::ScaTraTimIntElch::set_element_specific_scatra_parameters(
414416
Teuchos::ParameterList& eleparams) const
415417
{
416-
// overwrite action type
417-
if (elchparams_->get<bool>("DIFFCOND_FORMULATION"))
418-
{
419-
Core::Utils::add_enum_class_to_parameter_list<ScaTra::Action>(
420-
"action", ScaTra::Action::set_diffcond_scatra_parameter, eleparams);
421-
422-
// parameters for diffusion-conduction formulation
423-
eleparams.sublist("DIFFCOND") = elchparams_->sublist("DIFFCOND");
424-
}
425-
else
426-
Core::Utils::add_enum_class_to_parameter_list<ScaTra::Action>(
427-
"action", ScaTra::Action::set_elch_scatra_parameter, eleparams);
428-
429418
// general elch parameters
430419
eleparams.set<double>("faraday", elchparams_->get<double>("FARADAY_CONSTANT"));
431420
eleparams.set<double>("gas_constant", elchparams_->get<double>("GAS_CONSTANT"));
432421
eleparams.set<double>("frt", frt());
433422
eleparams.set<double>("temperature", temperature_);
434423
eleparams.set<Inpar::ElCh::EquPot>("equpot", equpot_);
435424
eleparams.set<bool>("boundaryfluxcoupling", elchparams_->get<bool>("COUPLE_BOUNDARY_FLUXES"));
425+
426+
// set additional, problem-dependent parameters
427+
Discret::Elements::ScaTraEleParameterElch::instance(discret_->name())->set_parameters(eleparams);
428+
429+
if (elchparams_->get<bool>("DIFFCOND_FORMULATION"))
430+
{
431+
// parameters for diffusion-conduction formulation
432+
eleparams.sublist("DIFFCOND") = elchparams_->sublist("DIFFCOND");
433+
434+
Discret::Elements::ScaTraEleParameterElchDiffCond::instance(discret_->name())
435+
->set_parameters(eleparams);
436+
}
436437
}
437438

438439
/*----------------------------------------------------------------------*

src/scatra/4C_scatra_timint_genalpha.cpp

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include "4C_global_data.hpp"
1313
#include "4C_io.hpp"
1414
#include "4C_scatra_ele_action.hpp"
15+
#include "4C_scatra_ele_parameter_timint.hpp"
1516
#include "4C_scatra_timint_meshtying_strategy_base.hpp"
1617
#include "4C_scatra_turbulence_hit_scalar_forcing.hpp"
1718
#include "4C_utils_parameter_list.hpp"
@@ -120,8 +121,6 @@ void ScaTra::TimIntGenAlpha::set_element_time_parameter(bool forcedincrementalso
120121
{
121122
Teuchos::ParameterList eleparams;
122123

123-
Core::Utils::add_enum_class_to_parameter_list<ScaTra::Action>(
124-
"action", ScaTra::Action::set_time_parameter, eleparams);
125124
eleparams.set<bool>("using generalized-alpha time integration", true);
126125
eleparams.set<bool>("using stationary formulation", false);
127126
if (!forcedincrementalsolver)
@@ -134,8 +133,8 @@ void ScaTra::TimIntGenAlpha::set_element_time_parameter(bool forcedincrementalso
134133
eleparams.set<double>("time factor", genalphafac_ * dta_);
135134
eleparams.set<double>("alpha_F", alphaF_);
136135

137-
// call standard loop over elements
138-
discret_->evaluate(eleparams, nullptr, nullptr, nullptr, nullptr, nullptr);
136+
Discret::Elements::ScaTraEleParameterTimInt::instance(discret_->name())
137+
->set_parameters(eleparams);
139138
}
140139

141140

@@ -146,9 +145,6 @@ void ScaTra::TimIntGenAlpha::set_element_time_parameter_backward_euler() const
146145
{
147146
Teuchos::ParameterList eleparams;
148147

149-
Core::Utils::add_enum_class_to_parameter_list<ScaTra::Action>(
150-
"action", ScaTra::Action::set_time_parameter, eleparams);
151-
152148
eleparams.set<bool>("using generalized-alpha time integration", false);
153149
eleparams.set<bool>("using stationary formulation", false);
154150
eleparams.set<bool>("incremental solver", true);
@@ -158,8 +154,8 @@ void ScaTra::TimIntGenAlpha::set_element_time_parameter_backward_euler() const
158154
eleparams.set<double>("time factor", 1.0 * dta_);
159155
eleparams.set<double>("alpha_F", 1.0);
160156

161-
// call standard loop over elements
162-
discret_->evaluate(eleparams, nullptr, nullptr, nullptr, nullptr, nullptr);
157+
Discret::Elements::ScaTraEleParameterTimInt::instance(discret_->name())
158+
->set_parameters(eleparams);
163159
}
164160

165161

src/scatra/4C_scatra_timint_implicit.cpp

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@
3030
#include "4C_mat_scatra.hpp"
3131
#include "4C_scatra_ele_action.hpp"
3232
#include "4C_scatra_ele_boundary_calc_elch_electrode_utils.hpp"
33+
#include "4C_scatra_ele_parameter_std.hpp"
3334
#include "4C_scatra_ele_parameter_timint.hpp"
35+
#include "4C_scatra_ele_parameter_turbulence.hpp"
3436
#include "4C_scatra_resulttest.hpp"
3537
#include "4C_scatra_timint_heterogeneous_reaction_strategy.hpp"
3638
#include "4C_scatra_timint_meshtying_strategy_artery.hpp"
@@ -40,7 +42,6 @@
4042
#include "4C_scatra_turbulence_hit_initial_scalar_field.hpp"
4143
#include "4C_scatra_turbulence_hit_scalar_forcing.hpp"
4244
#include "4C_scatra_utils.hpp"
43-
#include "4C_ssi_contact_strategy.hpp"
4445
#include "4C_utils_enum.hpp"
4546
#include "4C_utils_function.hpp"
4647
#include "4C_utils_parameter_list.hpp"
@@ -944,10 +945,6 @@ void ScaTra::ScaTraTimIntImpl::set_element_nodeset_parameters() const
944945
{
945946
Teuchos::ParameterList eleparams;
946947

947-
// set action
948-
Core::Utils::add_enum_class_to_parameter_list<ScaTra::Action>(
949-
"action", ScaTra::Action::set_nodeset_parameter, eleparams);
950-
951948
eleparams.set<int>("ndsdisp", nds_disp());
952949
eleparams.set<int>("ndsgrowth", nds_growth());
953950
eleparams.set<int>("ndspres", nds_pressure());
@@ -957,8 +954,8 @@ void ScaTra::ScaTraTimIntImpl::set_element_nodeset_parameters() const
957954
eleparams.set<int>("ndsvel", nds_vel());
958955
eleparams.set<int>("ndswss", nds_wall_shear_stress());
959956

960-
// call standard loop over elements
961-
discret_->evaluate(eleparams, nullptr, nullptr, nullptr, nullptr, nullptr);
957+
Discret::Elements::ScaTraEleParameterStd::instance(discret_->name())
958+
->set_nodeset_parameters(eleparams);
962959
}
963960

964961
/*--------------------------------------------------------------------------------*
@@ -967,10 +964,6 @@ void ScaTra::ScaTraTimIntImpl::set_element_general_parameters(bool calcinitialti
967964
{
968965
Teuchos::ParameterList eleparams;
969966

970-
// set action
971-
Core::Utils::add_enum_class_to_parameter_list<ScaTra::Action>(
972-
"action", ScaTra::Action::set_general_scatra_parameter, eleparams);
973-
974967
// set problem number
975968
eleparams.set<int>("probnum", probnum_);
976969

@@ -1032,8 +1025,7 @@ void ScaTra::ScaTraTimIntImpl::set_element_general_parameters(bool calcinitialti
10321025
// (electrochemistry etc.)
10331026
set_element_specific_scatra_parameters(eleparams);
10341027

1035-
// call standard loop over elements
1036-
discret_->evaluate(eleparams, nullptr, nullptr, nullptr, nullptr, nullptr);
1028+
Discret::Elements::ScaTraEleParameterStd::instance(discret_->name())->set_parameters(eleparams);
10371029
}
10381030

10391031

@@ -1044,9 +1036,6 @@ void ScaTra::ScaTraTimIntImpl::set_element_turbulence_parameters(
10441036
{
10451037
Teuchos::ParameterList eleparams;
10461038

1047-
Core::Utils::add_enum_class_to_parameter_list<ScaTra::Action>(
1048-
"action", ScaTra::Action::set_turbulence_scatra_parameter, eleparams);
1049-
10501039
eleparams.sublist("TURBULENCE MODEL") = extraparams_->sublist("TURBULENCE MODEL");
10511040
if (calcinitialtimederivative)
10521041
{
@@ -1081,8 +1070,8 @@ void ScaTra::ScaTraTimIntImpl::set_element_turbulence_parameters(
10811070
eleparams.set<Inpar::ScaTra::FSSUGRDIFF>("fs subgrid diffusivity", fssgd_);
10821071
}
10831072

1084-
// call standard loop over elements
1085-
discret_->evaluate(eleparams, nullptr, nullptr, nullptr, nullptr, nullptr);
1073+
Discret::Elements::ScaTraEleParameterTurbulence::instance(discret_->name())
1074+
->set_parameters(eleparams);
10861075
}
10871076

10881077
/*----------------------------------------------------------------------*

src/scatra/4C_scatra_timint_implicit_service.cpp

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#include "4C_linear_solver_method_linalg.hpp"
2323
#include "4C_linear_solver_method_parameters.hpp"
2424
#include "4C_scatra_ele_action.hpp"
25+
#include "4C_scatra_ele_parameter_turbulence.hpp"
2526
#include "4C_scatra_timint_implicit.hpp"
2627
#include "4C_scatra_turbulence_hit_scalar_forcing.hpp"
2728
#include "4C_utils_parameter_list.hpp"
@@ -1618,12 +1619,8 @@ void ScaTra::ScaTraTimIntImpl::recompute_mean_csgs_b()
16181619
<< std::endl;
16191620
}
16201621

1621-
// set meanCai via pre-evaluate call
1622-
Core::Utils::add_enum_class_to_parameter_list<ScaTra::Action>(
1623-
"action", ScaTra::Action::set_mean_Cai, myparams);
1624-
myparams.set<double>("meanCai", meanCai);
1625-
// call standard loop over elements
1626-
discret_->evaluate(myparams, nullptr, nullptr, nullptr, nullptr, nullptr);
1622+
Discret::Elements::ScaTraEleParameterTurbulence::instance(discret_->name())
1623+
->set_csgs_phi(meanCai);
16271624
}
16281625
}
16291626

src/scatra/4C_scatra_timint_meshtying_strategy_s2i.cpp

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3006,9 +3006,8 @@ void ScaTra::MeshtyingStrategyS2I::set_condition_specific_scatra_parameters(
30063006
// fill the parameter list
30073007
write_s2_i_kinetics_specific_scatra_parameters_to_parameter_list(s2icondition, conditionparams);
30083008

3009-
// call standard loop over elements
3010-
scatratimint_->discretization()->evaluate(
3011-
conditionparams, nullptr, nullptr, nullptr, nullptr, nullptr);
3009+
Discret::Elements::ScaTraEleParameterBoundary::instance("scatra")->set_parameters(
3010+
conditionparams);
30123011
}
30133012

30143013
/*----------------------------------------------------------------------*
@@ -3019,9 +3018,7 @@ void ScaTra::MeshtyingStrategyS2I::write_s2_i_kinetics_specific_scatra_parameter
30193018
// get kinetic model and condition type
30203019
const Core::Conditions::ConditionType conditiontype = s2ikinetics_cond.type();
30213020

3022-
// set action, kinetic model, condition type and numscal
3023-
Core::Utils::add_enum_class_to_parameter_list<ScaTra::Action>(
3024-
"action", ScaTra::Action::set_scatra_ele_boundary_parameter, s2icouplingparameters);
3021+
// set kinetic model, condition type and numscal
30253022
s2icouplingparameters.set<Core::Conditions::ConditionType>("condition type", conditiontype);
30263023

30273024
// set the condition type specific parameters

src/scatra/4C_scatra_timint_ost.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include "4C_global_data.hpp"
1313
#include "4C_io.hpp"
1414
#include "4C_scatra_ele_action.hpp"
15+
#include "4C_scatra_ele_parameter_timint.hpp"
1516
#include "4C_scatra_timint_meshtying_strategy_base.hpp"
1617
#include "4C_scatra_turbulence_hit_scalar_forcing.hpp"
1718
#include "4C_utils_parameter_list.hpp"
@@ -116,8 +117,6 @@ void ScaTra::TimIntOneStepTheta::set_element_time_parameter(bool forcedincrement
116117
{
117118
Teuchos::ParameterList eleparams;
118119

119-
Core::Utils::add_enum_class_to_parameter_list<ScaTra::Action>(
120-
"action", ScaTra::Action::set_time_parameter, eleparams);
121120
eleparams.set<bool>("using generalized-alpha time integration", false);
122121
eleparams.set<bool>("using stationary formulation", false);
123122
if (!forcedincrementalsolver)
@@ -131,8 +130,8 @@ void ScaTra::TimIntOneStepTheta::set_element_time_parameter(bool forcedincrement
131130
eleparams.set<double>("time derivative factor", 1.0 / (theta_ * dta_));
132131
eleparams.set<double>("alpha_F", 1.0);
133132

134-
// call standard loop over elements
135-
discret_->evaluate(eleparams, nullptr, nullptr, nullptr, nullptr, nullptr);
133+
Discret::Elements::ScaTraEleParameterTimInt::instance(discret_->name())
134+
->set_parameters(eleparams);
136135
}
137136

138137
/*--------------------------------------------------------------------------*

src/scatra/4C_scatra_timint_stat.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#include "4C_global_data.hpp"
1212
#include "4C_io.hpp"
1313
#include "4C_scatra_ele_action.hpp"
14+
#include "4C_scatra_ele_parameter_timint.hpp"
1415
#include "4C_scatra_timint_meshtying_strategy_base.hpp"
1516
#include "4C_utils_parameter_list.hpp"
1617

@@ -80,8 +81,6 @@ void ScaTra::TimIntStationary::set_element_time_parameter(bool forcedincremental
8081
{
8182
Teuchos::ParameterList eleparams;
8283

83-
Core::Utils::add_enum_class_to_parameter_list<ScaTra::Action>(
84-
"action", ScaTra::Action::set_time_parameter, eleparams);
8584
eleparams.set<bool>("using generalized-alpha time integration", false);
8685
eleparams.set<bool>("using stationary formulation", true);
8786
if (!forcedincrementalsolver)
@@ -94,8 +93,8 @@ void ScaTra::TimIntStationary::set_element_time_parameter(bool forcedincremental
9493
eleparams.set<double>("time factor", 1.0);
9594
eleparams.set<double>("alpha_F", 1.0);
9695

97-
// call standard loop over elements
98-
discret_->evaluate(eleparams, nullptr, nullptr, nullptr, nullptr, nullptr);
96+
Discret::Elements::ScaTraEleParameterTimInt::instance(discret_->name())
97+
->set_parameters(eleparams);
9998
}
10099

101100
/*----------------------------------------------------------------------*

0 commit comments

Comments
 (0)