Skip to content

Commit 3657664

Browse files
Simplify beam potential runtime output params
1 parent b228e7e commit 3657664

6 files changed

+74
-270
lines changed

src/beaminteraction/src/potential/4C_beaminteraction_potential_input.cpp

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ void BeamPotential::set_valid_parameters(std::map<std::string, Core::IO::InputSp
9393

9494
// output interval regarding steps: write output every INTERVAL_STEPS steps
9595
beampotential_output_sublist.specs.emplace_back(parameter<int>("INTERVAL_STEPS",
96-
{.description = "write output at runtime every INTERVAL_STEPS steps", .default_value = -1}));
96+
{.description = "write output at runtime every INTERVAL_STEPS steps", .default_value = 1}));
9797

9898
// whether to write output in every iteration of the nonlinear solver
9999
beampotential_output_sublist.specs.emplace_back(parameter<bool>(
@@ -130,30 +130,31 @@ void BeamPotential::set_valid_conditions(
130130
{
131131
using namespace Core::IO::InputSpecBuilders;
132132

133-
/*-------------------------------------------------------------------*/
134133
// beam potential interaction: atom/charge density per unit length on LINE
135-
Core::Conditions::ConditionDefinition rigidsphere_potential_charge(
136-
"DESIGN POINT RIGIDSPHERE POTENTIAL CHARGE CONDITIONS", "RigidspherePotentialPointCharge",
137-
"Rigidsphere_Potential_Point_Charge", Core::Conditions::RigidspherePotential_PointCharge,
138-
false, Core::Conditions::geometry_type_point);
139134

140135
Core::Conditions::ConditionDefinition beam_potential_line_charge(
141136
"DESIGN LINE BEAM POTENTIAL CHARGE CONDITIONS", "BeamPotentialLineCharge",
142137
"Beam_Potential_Line_Charge_Density", Core::Conditions::BeamPotential_LineChargeDensity,
143138
false, Core::Conditions::geometry_type_line);
144139

145-
rigidsphere_potential_charge.add_component(parameter<int>("POTLAW"));
146-
rigidsphere_potential_charge.add_component(parameter<double>("VAL"));
147-
rigidsphere_potential_charge.add_component(
148-
parameter<std::optional<int>>("FUNCT", {.description = ""}));
149-
150140
beam_potential_line_charge.add_component(parameter<int>("POTLAW"));
151141
beam_potential_line_charge.add_component(parameter<double>("VAL"));
152142
beam_potential_line_charge.add_component(
153143
parameter<std::optional<int>>("FUNCT", {.description = ""}));
154144

155-
condlist.push_back(rigidsphere_potential_charge);
156145
condlist.push_back(beam_potential_line_charge);
146+
147+
Core::Conditions::ConditionDefinition rigidsphere_potential_charge(
148+
"DESIGN POINT RIGIDSPHERE POTENTIAL CHARGE CONDITIONS", "RigidspherePotentialPointCharge",
149+
"Rigidsphere_Potential_Point_Charge", Core::Conditions::RigidspherePotential_PointCharge,
150+
false, Core::Conditions::geometry_type_point);
151+
152+
rigidsphere_potential_charge.add_component(parameter<int>("POTLAW"));
153+
rigidsphere_potential_charge.add_component(parameter<double>("VAL"));
154+
rigidsphere_potential_charge.add_component(
155+
parameter<std::optional<int>>("FUNCT", {.description = ""}));
156+
157+
condlist.push_back(rigidsphere_potential_charge);
157158
}
158159

159160
FOUR_C_NAMESPACE_CLOSE

src/beaminteraction/src/potential/4C_beaminteraction_potential_params.cpp

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
#include "4C_beamcontact_input.hpp"
1111
#include "4C_beaminteraction_potential_input.hpp"
12-
#include "4C_beaminteraction_potential_runtime_visualization_output_params.hpp"
1312
#include "4C_global_data.hpp"
1413
#include "4C_io_value_parser.hpp"
1514
#include "4C_utils_exceptions.hpp"
@@ -158,13 +157,33 @@ namespace BeamInteraction
158157
// create and initialize parameter container object for runtime output
159158
if (params.write_visualization_output)
160159
{
161-
params.params_runtime_visualization_output_btb_potential =
162-
BeamInteraction::BeamToBeamPotentialRuntimeOutputParams(restart_time);
160+
params.runtime_output_params = {
161+
.visualization_parameters = Core::IO::visualization_parameters_factory(
162+
Global::Problem::instance()->io_params().sublist("RUNTIME VTK OUTPUT"),
163+
*Global::Problem::instance()->output_control_file(), restart_time)};
163164

164-
params.params_runtime_visualization_output_btb_potential.init(
165-
beam_potential_params_list.sublist("RUNTIME VTK OUTPUT"));
166-
params.params_runtime_visualization_output_btb_potential.setup();
165+
initialize_validate_beam_potential_runtime_output_params(
166+
params.runtime_output_params, beam_potential_params_list.sublist("RUNTIME VTK OUTPUT"));
167167
}
168168
}
169+
170+
void initialize_validate_beam_potential_runtime_output_params(
171+
BeamPotentialRuntimeOutputParams& params, Teuchos::ParameterList const& sublist)
172+
{
173+
params.output_interval = sublist.get<int>("INTERVAL_STEPS");
174+
175+
params.write_all_iterations = sublist.get<bool>("EVERY_ITERATION");
176+
177+
params.write_forces = sublist.get<bool>("FORCES");
178+
179+
params.write_moments = sublist.get<bool>("MOMENTS");
180+
181+
params.write_forces_moments_per_pair = sublist.get<bool>("WRITE_FORCE_MOMENT_PER_ELEMENTPAIR");
182+
183+
params.write_uids = sublist.get<bool>("WRITE_UIDS");
184+
185+
// overwrite global option to write visualization output of every iteration
186+
params.visualization_parameters.every_iteration_ = params.write_all_iterations;
187+
}
169188
} // namespace BeamInteraction
170189
FOUR_C_NAMESPACE_CLOSE

src/beaminteraction/src/potential/4C_beaminteraction_potential_params.hpp

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#include "4C_config.hpp"
1212

1313
#include "4C_beaminteraction_potential_input.hpp"
14-
#include "4C_beaminteraction_potential_runtime_visualization_output_params.hpp"
14+
#include "4C_io_visualization_parameters.hpp"
1515

1616
#include <unordered_map>
1717

@@ -20,6 +20,24 @@ FOUR_C_NAMESPACE_OPEN
2020
namespace BeamInteraction
2121
{
2222

23+
struct BeamPotentialRuntimeOutputParams
24+
{
25+
//! global visualization parameters
26+
Core::IO::VisualizationParameters visualization_parameters;
27+
28+
int output_interval = false;
29+
30+
bool write_all_iterations = false;
31+
32+
bool write_forces = false;
33+
34+
bool write_moments = false;
35+
36+
bool write_forces_moments_per_pair = false;
37+
38+
bool write_uids = false;
39+
};
40+
2341
struct BeamPotentialParams
2442
{
2543
//! potential law parameters
@@ -55,19 +73,22 @@ namespace BeamInteraction
5573
//! visualization output
5674
bool write_visualization_output;
5775

58-
BeamInteraction::BeamToBeamPotentialRuntimeOutputParams
59-
params_runtime_visualization_output_btb_potential =
60-
BeamToBeamPotentialRuntimeOutputParams(0.0);
76+
BeamInteraction::BeamPotentialRuntimeOutputParams runtime_output_params;
6177

6278
//! data container for prior element lengths for potential reduction strategy
6379
//! first entry is left prior length and second entry is right prior length
6480
// this is stored in the beam potential params for easy access during evaluation
6581
std::unordered_map<int, std::pair<double, double>> ele_gid_prior_length_map;
6682
};
6783

84+
6885
void initialize_validate_beam_potential_params(
6986
BeamPotentialParams& beam_potential_params, const double restart_time);
7087

88+
void initialize_validate_beam_potential_runtime_output_params(
89+
BeamPotentialRuntimeOutputParams& beam_potential_runtime_output_params,
90+
const Teuchos::ParameterList& sublist);
91+
7192
} // namespace BeamInteraction
7293

7394
FOUR_C_NAMESPACE_CLOSE

src/beaminteraction/src/potential/4C_beaminteraction_potential_runtime_visualization_output_params.cpp

Lines changed: 0 additions & 93 deletions
This file was deleted.

src/beaminteraction/src/potential/4C_beaminteraction_potential_runtime_visualization_output_params.hpp

Lines changed: 0 additions & 132 deletions
This file was deleted.

0 commit comments

Comments
 (0)