https://mooseframework.inl.gov
Loading...
Searching...
No Matches
DumpObjectsProblem.h
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
3//*
4//* All rights reserved, see COPYRIGHT for full restrictions
5//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6//*
7//* Licensed under LGPL 2.1, please see LICENSE for details
8//* https://www.gnu.org/licenses/lgpl-2.1.html
9
10#pragma once
11
12#include "FEProblemBase.h"
13
15
16#define captureDump(method_name, path) \
17 void method_name( \
18 const std::string & type, const std::string & name, InputParameters & parameters) override \
19 { \
20 dumpObjectHelper(path, type, name, parameters); \
21 FEProblemBase::method_name(type, name, parameters); \
22 }
23
24#define captureDumpUO(method_name, path) \
25 std::vector<std::shared_ptr<UserObject>> method_name( \
26 const std::string & type, const std::string & name, InputParameters & parameters) override \
27 { \
28 dumpObjectHelper(path, type, name, parameters); \
29 FEProblemBase::method_name(type, name, parameters); \
30 return std::vector<std::shared_ptr<UserObject>>(); \
31 }
32
37{
38public:
40
42
45
47 void dumpGeneratedSyntax(const std::string path);
49 void dumpAllGeneratedSyntax() const;
50
52 virtual void solve(unsigned int /*nl_sys_num*/) override {}
53 virtual void solveLinearSystem(unsigned int /*linear_sys_num*/,
54 const Moose::PetscSupport::PetscOptions *) override
55 {
56 }
57
58 // output data (we expect to call this from the DumpObjectsAction)
59 void printObjects();
60
61 virtual void initialSetup() override;
62 virtual void advanceState() override {}
63 virtual void timestepSetup() override {}
64 virtual void execute(const ExecFlagType & /*exec_type*/) override {}
65 virtual void outputStep(ExecFlagType /*type*/) override {}
66 virtual void updateActiveObjects() override {}
67 virtual void onTimestepEnd() override {}
68 virtual void computeIndicators() override {}
69 virtual void computeMarkers() override {}
70 virtual bool adaptMesh() override { return false; }
71 virtual void addLineSearch(const InputParameters & /*parameters*/) override {}
72
73protected:
74 void dumpObjectHelper(const std::string & system,
75 const std::string & type,
76 const std::string & name,
78
79 void dumpVariableHelper(const std::string & system,
80 const std::string & var_name,
81 libMesh::FEFamily family,
82 Order order,
83 Real scale_factor,
84 const std::set<SubdomainID> * const active_subdomains);
85
87 std::string deduceNecessaryParameters(const std::string & type,
89
91 std::map<std::string, std::string> stringifyParameters(const InputParameters & parameters);
92
94 std::map<std::string, std::map<std::string, std::string>> _generated_syntax;
95
98
99public:
100 // clang-format off
102 captureDump(addAuxScalarKernel, "AuxScalarKernels")
108 captureDump(addDGKernel, "DGKernels")
110 captureDump(addDistribution, "Distributions")
112 captureDump(addFunctorMaterial, "FunctorMaterials")
115 captureDump(addFVInterfaceKernel, "FVInterfaceKernels")
116 captureDump(addFVKernel, "FVKernels")
118 captureDump(addIndicator, "Adaptivity/Indicators")
120 captureDump(addInterfaceKernel, "InterfaceKernels")
122#ifdef MOOSE_KOKKOS_ENABLED
123 captureDump(addKokkosAuxKernel, "AuxKernels")
125 captureDump(addKokkosFunction, "Functions")
127 captureDump(addKokkosMaterial, "Materials")
129#endif
130 captureDump(addLinearFVBC, "LinearFVBCs")
131 captureDump(addLinearFVKernel, "LinearFVKernels")
134 captureDump(addMeshDivision, "MeshDivisions")
136 captureDump(addNodalKernel, "NodalKernels")
137 captureDump(addPostprocessor, "Postprocessors")
140 captureDump(addScalarKernel, "ScalarKernels")
142 captureDump(addTimeIntegrator, "Executioner/TimeIntegrators")
144 captureDump(addVariable, "Variables")
145 captureDump(addVectorPostprocessor, "VectorPostprocessors")
146 // clang-format off
147};
Takes care of everything related to mesh adaptivity.
Definition Adaptivity.h:64
Base class for convergence criteria.
Definition Convergence.h:26
Nonlinear system for dumping objects.
Specialization of SubProblem for dumping generated objects as input file syntax.
std::map< std::string, std::string > stringifyParameters(const InputParameters &parameters)
create a string map form parameter names to stringified parameter values
virtual void execute(const ExecFlagType &) override
Convenience function for performing execution of MOOSE systems.
virtual void solve(unsigned int) override
output data in solve (if ever called)
captureDump(addAuxKernel, "AuxKernels") captureDump(addAuxScalarKernel
void dumpAllGeneratedSyntax() const
output input blocks for all paths
virtual void updateActiveObjects() override
Update the active objects in the warehouses.
virtual void computeIndicators() override
virtual void addVariable(const std::string &var_type, const std::string &var_name, InputParameters &params)
Canonical method for adding a non-linear variable.
const bool _include_all_user_specified_params
Whether to include all user-specified parameters in the dump or only parameters that differ from the ...
void dumpVariableHelper(const std::string &system, const std::string &var_name, libMesh::FEFamily family, Order order, Real scale_factor, const std::set< SubdomainID > *const active_subdomains)
virtual void initialSetup() override
std::string deduceNecessaryParameters(const std::string &type, const InputParameters &parameters)
build a text snippet of the minimal set of parameters that need to be specified
void dumpObjectHelper(const std::string &system, const std::string &type, const std::string &name, const InputParameters &parameters)
virtual void onTimestepEnd() override
virtual void advanceState() override
Advance all of the state holding vectors / datastructures so that we can move to the next timestep.
virtual void outputStep(ExecFlagType) override
Output the current step.
static InputParameters validParams()
virtual void addAuxVariable(const std::string &var_type, const std::string &var_name, InputParameters &params)
Canonical method for adding an auxiliary variable.
virtual bool adaptMesh() override
virtual void solveLinearSystem(unsigned int, const Moose::PetscSupport::PetscOptions *) override
Build and solve a linear system.
virtual void timestepSetup() override
virtual void computeMarkers() override
virtual void addLineSearch(const InputParameters &) override
add a MOOSE line search
AuxScalarKernels BCs Convergence DGKernels Distributions FunctorMaterials FVICs FVKernels Adaptivity Indicators InterfaceKernels AuxKernels Functions Materials LinearFVBCs Adaptivity Markers MeshDivisions NodalKernels Executioner Predictor ScalarKernels Executioner TimeIntegrators captureDumpUO(addUserObject, "UserObjects") captureDump(addVariable
std::map< std::string, std::map< std::string, std::string > > _generated_syntax
store input syntax to build objects generated by a specific action
void dumpGeneratedSyntax(const std::string path)
output input blocks for a given action path
Executioners are objects that do the actual work of solving your problem.
Definition Executioner.h:37
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
virtual void addKokkosAuxKernel(const std::string &kernel_name, const std::string &name, InputParameters &parameters)
virtual void addKokkosBoundaryCondition(const std::string &bc_name, const std::string &name, InputParameters &parameters)
virtual void addPredictor(const std::string &type, const std::string &name, InputParameters &parameters)
virtual void addDistribution(const std::string &type, const std::string &name, InputParameters &parameters)
The following functions will enable MOOSE to have the capability to import distributions.
virtual std::vector< std::shared_ptr< UserObject > > addUserObject(const std::string &user_object_name, const std::string &name, InputParameters &parameters)
virtual void addSampler(const std::string &type, const std::string &name, InputParameters &parameters)
The following functions will enable MOOSE to have the capability to import Samplers.
virtual void addConvergence(const std::string &type, const std::string &name, InputParameters &parameters)
Adds a Convergence object.
virtual void addHDGKernel(const std::string &kernel_name, const std::string &name, InputParameters &parameters)
virtual void addTimeIntegrator(const std::string &type, const std::string &name, InputParameters &parameters)
virtual void addLinearFVKernel(const std::string &kernel_name, const std::string &name, InputParameters &parameters)
virtual void addMaterial(const std::string &material_name, const std::string &name, InputParameters &parameters)
virtual void addVariable(const std::string &var_type, const std::string &var_name, InputParameters &params)
Canonical method for adding a non-linear variable.
virtual void addFunction(const std::string &type, const std::string &name, InputParameters &parameters)
virtual void addInitialCondition(const std::string &ic_name, const std::string &name, InputParameters &parameters)
virtual void addFVBC(const std::string &fv_bc_name, const std::string &name, InputParameters &parameters)
virtual void addTransfer(const std::string &transfer_name, const std::string &name, InputParameters &parameters)
Add a Transfer to the problem.
virtual void addVectorPostprocessor(const std::string &pp_name, const std::string &name, InputParameters &parameters)
virtual void addBoundaryCondition(const std::string &bc_name, const std::string &name, InputParameters &parameters)
virtual void addNodalKernel(const std::string &kernel_name, const std::string &name, InputParameters &parameters)
virtual void addPostprocessor(const std::string &pp_name, const std::string &name, InputParameters &parameters)
virtual void addKernel(const std::string &kernel_name, const std::string &name, InputParameters &parameters)
virtual void addAuxScalarKernel(const std::string &kernel_name, const std::string &name, InputParameters &parameters)
virtual void addKokkosMaterial(const std::string &material_name, const std::string &name, InputParameters &parameters)
virtual void addDGKernel(const std::string &kernel_name, const std::string &name, InputParameters &parameters)
virtual void addKokkosKernel(const std::string &kernel_name, const std::string &name, InputParameters &parameters)
virtual void addAuxKernel(const std::string &kernel_name, const std::string &name, InputParameters &parameters)
virtual void addDiracKernel(const std::string &kernel_name, const std::string &name, InputParameters &parameters)
virtual void addIndicator(const std::string &indicator_name, const std::string &name, InputParameters &parameters)
virtual void addKokkosFunction(const std::string &type, const std::string &name, InputParameters &parameters)
Add a Kokkos function to the problem.
virtual void addLinearFVBC(const std::string &fv_bc_name, const std::string &name, InputParameters &parameters)
virtual void addAuxVariable(const std::string &var_type, const std::string &var_name, InputParameters &params)
Canonical method for adding an auxiliary variable.
virtual void addMultiApp(const std::string &multi_app_name, const std::string &name, InputParameters &parameters)
Add a MultiApp to the problem.
virtual void addMarker(const std::string &marker_name, const std::string &name, InputParameters &parameters)
virtual void addScalarKernel(const std::string &kernel_name, const std::string &name, InputParameters &parameters)
virtual void addKokkosNodalKernel(const std::string &kernel_name, const std::string &name, InputParameters &parameters)
virtual void addFVInterfaceKernel(const std::string &fv_ik_name, const std::string &name, InputParameters &parameters)
virtual void addFVInitialCondition(const std::string &ic_name, const std::string &name, InputParameters &parameters)
Add an initial condition for a finite volume variables.
virtual void addInterfaceKernel(const std::string &kernel_name, const std::string &name, InputParameters &parameters)
virtual void addConstraint(const std::string &c_name, const std::string &name, InputParameters &parameters)
virtual void addFunctorMaterial(const std::string &functor_material_name, const std::string &name, InputParameters &parameters)
virtual void addDamper(const std::string &damper_name, const std::string &name, InputParameters &parameters)
virtual void addFVKernel(const std::string &kernel_name, const std::string &name, InputParameters &parameters)
virtual void addMeshDivision(const std::string &type, const std::string &name, InputParameters &params)
Add a MeshDivision.
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
const InputParameters & parameters() const
Get the parameters of the object.
Definition MooseBase.h:131
const std::string & type() const
Get the type of this class.
Definition MooseBase.h:93
const std::string & name() const
Get the name of the class.
Definition MooseBase.h:103
Class for containing MooseEnum item information.
A struct for storing the various types of petsc options and values.
Base class for predictors.
Definition Predictor.h:29