20#define registerActionComponent(app_name, component_name) \
21 registerMooseAction(app_name, component_name, "list_component")
33 virtual void act()
override final;
Base class for components that are defined using an action.
std::vector< BoundaryName > _outer_boundaries
Names of the boundaries on the component outer surface.
FEProblemBase & getProblem()
Get problem from action warehouse.
virtual void actOnAdditionalTasks()
Use this if registering a new task to the derived ActionComponent.
const std::vector< MeshGeneratorName > & meshGeneratorNames() const
Get the name(s) of the mesh generator(s) created by this component that generates the mesh for it.
Factory & getFactory() const
Get the factory to build (often physics-related but not always) objects (for example a Positions)
virtual Real outerSurfaceArea() const
Return the component outer boundary area.
virtual void addPhysics()
Used to add one or more Physics to be active on the component.
virtual void addMaterials()
Used to add materials or functor materials on a component.
const std::vector< SubdomainName > & blocks() const
Returns the subdomains for the component mesh, if any.
virtual Real volume() const
Return the component volume.
void checkRequiredTasks() const
Checks that tasks marked required by parent classes are indeed registered to derived classes.
std::vector< MeshGeneratorName > _mg_names
Name(s) of the final mesh generator(s) creating the mesh for the component.
virtual void act() override final
Method to add objects to the simulation or perform other setup tasks.
void addConnectedComponent(ActionComponent &component)
Merge another component's group into this component's group.
void addRequiredTask(const std::string &task)
Add a new required task for all physics deriving from this class NOTE: This does not register the tas...
std::vector< SubdomainName > _blocks
Names of the blocks the component is comprised of.
virtual void addUserObjects()
std::set< std::string > _required_tasks
Manually keeps track of the tasks required by each component as tasks cannot be inherited.
virtual void addPositionsObject()
std::shared_ptr< std::set< ActionComponent * > > _connected_components
Group of components that share a common mesh after junctioning.
const std::set< ActionComponent * > & getConnectedComponents() const
Get all components connected to the component group of this component (including itself)
const bool _verbose
Whether the component setup should be verbose.
virtual void checkIntegrity()
Used for various checks notably:
virtual void setupComponent()
MeshGeneratorName _top_mg_name
Name of the top-most mesh generator in the hierarchy of MGs on top of the ones generating this compon...
virtual const std::vector< BoundaryName > & outerSurfaceBoundaries() const
Return the outer surface boundaries.
static InputParameters validParams()
unsigned int _dimension
Maximum dimension of the component.
void setCurrentTopLevelMeshGeneratorName(const MeshGeneratorName &mg_name)
Set the name of the final mesh generator that contains this component.
virtual void addMeshGenerators()
virtual void addSolverVariables()
Used to add variables on a component.
MeshGeneratorName getCurrentTopLevelMeshGeneratorName() const
Return the name of the final mesh generator that contains this component This may not be one of the m...
unsigned int dimension() const
Return the dimension of the component.
std::shared_ptr< FEProblemBase > & problemBase()
ActionWarehouse & _awh
Reference to ActionWarehouse where we store object build by actions.
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
Generic factory class for build all sorts of objects.
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Factory & _factory
The Factory associated with the MooseApp.
Base class to help creating an entire physics.