diff --git a/include/components/Enclosure0D.h b/include/components/Enclosure0D.h index 2fa6cf74..181fce6c 100644 --- a/include/components/Enclosure0D.h +++ b/include/components/Enclosure0D.h @@ -8,13 +8,13 @@ #pragma once -#include "ComponentAction.h" -#include "PhysicsComponentHelper.h" +#include "ActionComponent.h" +#include "PhysicsComponentBase.h" /** * Enclosure component which can trap a species, e.g. Tritium */ -class Enclosure0D : public virtual ComponentAction, public PhysicsComponentHelper +class Enclosure0D : public virtual ActionComponent, public PhysicsComponentBase { public: Enclosure0D(const InputParameters & params); @@ -34,9 +34,16 @@ class Enclosure0D : public virtual ComponentAction, public PhysicsComponentHelpe /// Returns the scaled outer boundary surface area virtual Real outerSurfaceArea() const override { return _surface_area; } /// Returns the boundary of the enclosure, connecting with the structure - virtual const std::vector & outerSurfaceBoundaries() const override { _console << Moose::stringify(_outer_boundaries); return _outer_boundaries; } + virtual const std::vector & outerSurfaceBoundaries() const override + { + _console << Moose::stringify(_outer_boundaries); + return _outer_boundaries; + } /// Get the connected structure name - ComponentName connectedStructure() const { return getParam("connected_structure");} + ComponentName connectedStructure() const + { + return getParam("connected_structure"); + } protected: virtual void initComponentPhysics() override; diff --git a/include/components/Structure1D.h b/include/components/Structure1D.h index bf3c2cec..e26aef20 100644 --- a/include/components/Structure1D.h +++ b/include/components/Structure1D.h @@ -8,13 +8,13 @@ #pragma once -#include "ComponentAction.h" -#include "PhysicsComponentHelper.h" +#include "ActionComponent.h" +#include "PhysicsComponentBase.h" /** * A 1D structure on which a species can diffuse */ -class Structure1D : public virtual ComponentAction, public PhysicsComponentHelper +class Structure1D : public virtual ActionComponent, public PhysicsComponentBase { public: Structure1D(const InputParameters & params); diff --git a/include/physics/FieldTrappingPhysics.h b/include/physics/FieldTrappingPhysics.h index 952deee3..763cd190 100644 --- a/include/physics/FieldTrappingPhysics.h +++ b/include/physics/FieldTrappingPhysics.h @@ -11,6 +11,8 @@ #include "SpeciesTrappingPhysicsBase.h" +class ActionComponent; + /** * Creates all the objects needed to solve for the concentration of a scalar in traps distributed * over a mesh. @@ -22,7 +24,7 @@ class FieldTrappingPhysics : public SpeciesTrappingPhysicsBase FieldTrappingPhysics(const InputParameters & parameters); - void addComponent(const ComponentAction & component) override; + void addComponent(const ActionComponent & component) override; protected: /// Return the name of the species variable diff --git a/include/physics/PointTrappingPhysics.h b/include/physics/PointTrappingPhysics.h index 9663cf23..a5afbb15 100644 --- a/include/physics/PointTrappingPhysics.h +++ b/include/physics/PointTrappingPhysics.h @@ -11,6 +11,9 @@ #include "SpeciesTrappingPhysicsBase.h" +// Forward declarations +class ActionComponent; + /** * Creates all the objects needed to solve for the concentration of a scalar in 0D trap(s). */ @@ -21,7 +24,7 @@ class PointTrappingPhysics : public SpeciesTrappingPhysicsBase PointTrappingPhysics(const InputParameters & parameters); - void addComponent(const ComponentAction & component) override; + void addComponent(const ActionComponent & component) override; protected: /// Equilibrium constants / solubilities? diff --git a/src/bcs/EquilibriumBC.C b/src/bcs/EquilibriumBC.C index 51c69205..d0f97b68 100644 --- a/src/bcs/EquilibriumBC.C +++ b/src/bcs/EquilibriumBC.C @@ -44,6 +44,7 @@ EquilibriumBC::EquilibriumBC(const InputParameters & parameters) _Ko(getParam("Ko")), _Ea(getParam("activation_energy")), _p(getParam("p")), + _enclosure_var_bool_scalar(isCoupled("enclosure_scalar_var")), _enclosure_var(adCoupledScalarValue("enclosure_scalar_var")), _T(isParamValid("temp") ? &adCoupledValue("temp") : nullptr), _T_function(isParamValid("temperature") ? &getFunction("temperature") : nullptr), diff --git a/src/components/Enclosure0D.C b/src/components/Enclosure0D.C index 0d6df083..0b1d4cec 100644 --- a/src/components/Enclosure0D.C +++ b/src/components/Enclosure0D.C @@ -15,16 +15,16 @@ registerMooseAction("TMAP8App", Enclosure0D, "init_component_physics"); InputParameters Enclosure0D::validParams() { - auto params = ComponentAction::validParams(); - params += PhysicsComponentHelper::validParams(); + auto params = ActionComponent::validParams(); + params += PhysicsComponentBase::validParams(); params += TMAP::enclosureCommonParams(); params.makeParamRequired>("physics"); return params; } Enclosure0D::Enclosure0D(const InputParameters & params) - : ComponentAction(params), - PhysicsComponentHelper(params), + : ActionComponent(params), + PhysicsComponentBase(params), _species(getParam>("species")), _scaling_factors(isParamValid("species_scaling_factors") ? getParam>("species_scaling_factors") diff --git a/src/components/Structure1D.C b/src/components/Structure1D.C index 7ed876ec..fa8a3bb6 100644 --- a/src/components/Structure1D.C +++ b/src/components/Structure1D.C @@ -16,8 +16,8 @@ registerMooseAction("TMAP8App", Structure1D, "init_component_physics"); InputParameters Structure1D::validParams() { - auto params = ComponentAction::validParams(); - params += PhysicsComponentHelper::validParams(); + auto params = ActionComponent::validParams(); + params += PhysicsComponentBase::validParams(); params += TMAP::structureCommonParams(); params.addRequiredParam("nx", "The number of elements in the structure."); params.addRequiredParam("xmax", "The maximum x-value."); @@ -26,8 +26,8 @@ Structure1D::validParams() } Structure1D::Structure1D(const InputParameters & params) - : ComponentAction(params), - PhysicsComponentHelper(params), + : ActionComponent(params), + PhysicsComponentBase(params), _species(getParam>("species")), _ics(getParam>("species_initial_concentrations")), _length_unit(getParam("length_unit_scaling")) @@ -52,7 +52,7 @@ Structure1D::addMeshGenerators() "GeneratedMeshGenerator", name() + "_base", params); // Keep track of the component mesh - _mg_name = name() + "_base"; + _mg_names.push_back(name() + "_base"); _outer_boundaries.push_back(name() + "_left"); _outer_boundaries.push_back(name() + "_right"); _blocks.push_back(name()); diff --git a/src/physics/FieldTrappingPhysics.C b/src/physics/FieldTrappingPhysics.C index c37687cc..51621d7d 100644 --- a/src/physics/FieldTrappingPhysics.C +++ b/src/physics/FieldTrappingPhysics.C @@ -8,7 +8,7 @@ //* https://www.gnu.org/licenses/lgpl-2.1.html #include "FieldTrappingPhysics.h" -#include "ComponentAction.h" +#include "ActionComponent.h" #include "MooseUtils.h" // Register the actions for the objects actually used @@ -85,7 +85,7 @@ FieldTrappingPhysics::FieldTrappingPhysics(const InputParameters & parameters) } void -FieldTrappingPhysics::addComponent(const ComponentAction & component) +FieldTrappingPhysics::addComponent(const ActionComponent & component) { for (const auto & block : component.blocks()) _blocks.push_back(block); diff --git a/src/physics/PointTrappingPhysics.C b/src/physics/PointTrappingPhysics.C index 15e69449..0fdd4cac 100644 --- a/src/physics/PointTrappingPhysics.C +++ b/src/physics/PointTrappingPhysics.C @@ -9,7 +9,7 @@ #include "PointTrappingPhysics.h" #include "MooseUtils.h" -#include "ComponentAction.h" +#include "ActionComponent.h" #include "Enclosure0D.h" // For connecting to multi-D diffusion on other components @@ -27,7 +27,8 @@ InputParameters PointTrappingPhysics::validParams() { InputParameters params = SpeciesTrappingPhysicsBase::validParams(); - params.addClassDescription("Add Physics for the trapping of species on enclosures / 0D components."); + params.addClassDescription( + "Add Physics for the trapping of species on enclosures / 0D components."); params.addRequiredParam>>( "equilibrium_constants", @@ -64,7 +65,7 @@ PointTrappingPhysics::PointTrappingPhysics(const InputParameters & parameters) } void -PointTrappingPhysics::addComponent(const ComponentAction & component) +PointTrappingPhysics::addComponent(const ActionComponent & component) { checkComponentType(component); const auto & comp = dynamic_cast(component); @@ -94,8 +95,12 @@ PointTrappingPhysics::addComponent(const ComponentAction & component) comp.ics(), true, std::vector(0, n_species_component)); - processComponentParameters( - "temperatures", comp.name(), _component_temperatures, std::to_string(comp.temperature()), false, "0"); + processComponentParameters("temperatures", + comp.name(), + _component_temperatures, + std::to_string(comp.temperature()), + false, + "0"); // TODO: check that inputs are consistent once all components have been added. // - the pressure, temperature and the scaling factors should be positive (defense in depth from @@ -149,7 +154,7 @@ PointTrappingPhysics::addScalarKernels() { // Get the boundary from the component const auto & comp_name = _components[c_i]; - const auto & component = getComponent(comp_name); + const auto & component = getActionComponent(comp_name); const auto & structure_boundary = getConnectedStructureBoundary(c_i); const auto scaled_volume = component.volume() * Utility::pow<3>(_length_unit); const auto scaled_area = component.outerSurfaceArea() * Utility::pow<2>(_length_unit); @@ -222,7 +227,7 @@ PointTrappingPhysics::addFEBCs() void PointTrappingPhysics::checkSingleBoundary(const std::vector & boundaries, - const ComponentName & comp_name) const + const ComponentName & comp_name) const { if (boundaries.size() != 1) paramError("components", @@ -234,7 +239,7 @@ const VariableName & PointTrappingPhysics::getConnectedStructureVariableName(unsigned int c_i, unsigned int s_j) { const auto & comp_name = _components[c_i]; - const auto & component = getComponent(comp_name); + const auto & component = getActionComponent(comp_name); const auto multi_D_physics = getConnectedStructurePhysics(c_i); if (multi_D_physics.empty()) component.paramError("connected_structure", @@ -257,7 +262,7 @@ const BoundaryName & PointTrappingPhysics::getConnectedStructureBoundary(unsigned int c_i) { const auto & comp_name = _components[c_i]; - const auto & component = getComponent(comp_name); + const auto & component = getActionComponent(comp_name); const auto & boundaries = component.outerSurfaceBoundaries(); checkSingleBoundary(boundaries, comp_name); return boundaries[0]; @@ -267,8 +272,8 @@ const std::vector PointTrappingPhysics::getConnectedStructurePhysics(unsigned int c_i) { const auto comp_name = _components[c_i]; - const auto & component = dynamic_cast(getComponent(comp_name)); - const auto & structure = getComponent(component.connectedStructure()); + const auto & component = dynamic_cast(getActionComponent(comp_name)); + const auto & structure = getActionComponent(component.connectedStructure()); checkComponentType(structure); return dynamic_cast(structure).getPhysics(); }