Skip to content

Commit

Permalink
fix tensor mechanics module and xfem module idaholab#22068
Browse files Browse the repository at this point in the history
  • Loading branch information
YaqiWang committed Sep 12, 2022
1 parent ae8633b commit 946e776
Show file tree
Hide file tree
Showing 7 changed files with 33 additions and 14 deletions.
Expand Up @@ -16,7 +16,7 @@ class CavityPressurePPAction : public Action
public:
static InputParameters validParams();

CavityPressurePPAction(InputParameters params);
CavityPressurePPAction(const InputParameters & params);

virtual void act();
};
Expand Up @@ -24,7 +24,7 @@ CavityPressurePPAction::validParams()
return params;
}

CavityPressurePPAction::CavityPressurePPAction(InputParameters params) : Action(params) {}
CavityPressurePPAction::CavityPressurePPAction(const InputParameters & params) : Action(params) {}

void
CavityPressurePPAction::act()
Expand Down
14 changes: 10 additions & 4 deletions modules/tensor_mechanics/src/actions/CohesiveZoneActionBase.C
Expand Up @@ -12,6 +12,7 @@
#include "ActionWarehouse.h"
#include "AddAuxVariableAction.h"
#include "MooseEnum.h"
#include "InputParameterWarehouse.h"

// map vector name shortcuts to tensor material property names
const std::map<std::string, std::string>
Expand Down Expand Up @@ -89,10 +90,15 @@ CohesiveZoneActionBase::validParams()

CohesiveZoneActionBase::CohesiveZoneActionBase(const InputParameters & params) : Action(params)
{
// FIXME: suggest to use action of action to add this to avoid changing the input parameters in
// the warehouse.
const auto & parameters = _app.getInputParameterWarehouse().getInputParameters();
InputParameters & pars(*(parameters.find(uniqueActionName())->second.get()));

// check if a container block with common parameters is found
auto action = _awh.getActions<CommonCohesiveZoneAction>();
if (action.size() == 1)
_pars.applyParameters(action[0]->parameters());
pars.applyParameters(action[0]->parameters());

// append additional_generate_output to generate_output
if (isParamValid("additional_generate_output"))
Expand All @@ -116,9 +122,9 @@ CohesiveZoneActionBase::CohesiveZoneActionBase(const InputParameters & params) :
for (auto & family : additional_material_output_family)
material_output_family.push_back(family);

_pars.set<MultiMooseEnum>("generate_output") = generate_output;
_pars.set<MultiMooseEnum>("material_output_order") = material_output_order;
_pars.set<MultiMooseEnum>("material_output_family") = material_output_family;
pars.set<MultiMooseEnum>("generate_output") = generate_output;
pars.set<MultiMooseEnum>("material_output_order") = material_output_order;
pars.set<MultiMooseEnum>("material_output_family") = material_output_family;
}
}

Expand Down
7 changes: 6 additions & 1 deletion modules/tensor_mechanics/src/actions/LineElementAction.C
Expand Up @@ -214,10 +214,15 @@ LineElementAction::LineElementAction(const InputParameters & params)
_subdomain_ids(),
_add_dynamic_variables(false)
{
// FIXME: suggest to use action of action to add this to avoid changing the input parameters in
// the warehouse.
const auto & parameters = _app.getInputParameterWarehouse().getInputParameters();
InputParameters & pars(*(parameters.find(uniqueActionName())->second.get()));

// check if a container block with common parameters is found
auto action = _awh.getActions<CommonLineElementAction>();
if (action.size() == 1)
_pars.applyParameters(action[0]->parameters());
pars.applyParameters(action[0]->parameters());

// Set values to variables after common parameters are applied
_save_in = getParam<std::vector<AuxVariableName>>("save_in");
Expand Down
13 changes: 9 additions & 4 deletions modules/tensor_mechanics/src/actions/TensorMechanicsActionBase.C
Expand Up @@ -231,10 +231,15 @@ TensorMechanicsActionBase::validParams()
TensorMechanicsActionBase::TensorMechanicsActionBase(const InputParameters & parameters)
: Action(parameters), _use_ad(getParam<bool>("use_automatic_differentiation"))
{
// FIXME: suggest to use action of action to add this to avoid changing the input parameters in
// the warehouse.
const auto & params = _app.getInputParameterWarehouse().getInputParameters();
InputParameters & pars(*(params.find(uniqueActionName())->second.get()));

// check if a container block with common parameters is found
auto action = _awh.getActions<CommonTensorMechanicsAction>();
if (action.size() == 1)
_pars.applyParameters(action[0]->parameters());
pars.applyParameters(action[0]->parameters());

// append additional_generate_output
if (isParamValid("additional_generate_output"))
Expand All @@ -258,9 +263,9 @@ TensorMechanicsActionBase::TensorMechanicsActionBase(const InputParameters & par
for (auto & family : additional_material_output_family)
material_output_family.push_back(family);

_pars.set<MultiMooseEnum>("generate_output") = generate_output;
_pars.set<MultiMooseEnum>("material_output_order") = material_output_order;
_pars.set<MultiMooseEnum>("material_output_family") = material_output_family;
pars.set<MultiMooseEnum>("generate_output") = generate_output;
pars.set<MultiMooseEnum>("material_output_order") = material_output_order;
pars.set<MultiMooseEnum>("material_output_family") = material_output_family;
}
}

Expand Down
2 changes: 1 addition & 1 deletion modules/xfem/include/actions/XFEMAction.h
Expand Up @@ -17,7 +17,7 @@ class XFEMAction : public Action
public:
static InputParameters validParams();

XFEMAction(InputParameters params);
XFEMAction(const InputParameters & params);

virtual void act();

Expand Down
7 changes: 5 additions & 2 deletions modules/xfem/src/actions/XFEMAction.C
Expand Up @@ -17,6 +17,7 @@
#include "Parser.h"
#include "Factory.h"
#include "AddVariableAction.h"
#include "InputParameterWarehouse.h"

#include "GeometricCutUserObject.h"
#include "CrackFrontDefinition.h"
Expand Down Expand Up @@ -79,7 +80,7 @@ XFEMAction::validParams()
return params;
}

XFEMAction::XFEMAction(InputParameters params)
XFEMAction::XFEMAction(const InputParameters & params)
: Action(params),
_geom_cut_userobjects(getParam<std::vector<UserObjectName>>("geometric_cut_userobjects")),
_xfem_qrule(getParam<std::string>("qrule")),
Expand Down Expand Up @@ -135,7 +136,9 @@ XFEMAction::act()
std::shared_ptr<XFEMInterface> xfem_interface = _problem->getXFEM();
if (xfem_interface == NULL)
{
_pars.set<FEProblemBase *>("_fe_problem_base") = &*_problem;
const auto & params = _app.getInputParameterWarehouse().getInputParameters();
InputParameters & pars(*(params.find(uniqueActionName())->second.get()));
pars.set<FEProblemBase *>("_fe_problem_base") = &*_problem;
std::shared_ptr<XFEM> new_xfem(new XFEM(_pars));
_problem->initXFEM(new_xfem);
xfem_interface = _problem->getXFEM();
Expand Down

0 comments on commit 946e776

Please sign in to comment.