25 #ifndef GRINS_PHYSICS_FACTORY_BASE_H
26 #define GRINS_PHYSICS_FACTORY_BASE_H
56 virtual libMesh::UniquePtr<Physics>
build_physics(
const GetPot& input,
57 const std::string& physics_name ) =0;
61 virtual libMesh::UniquePtr<Physics>
create();
70 libmesh_error_msg(
"ERROR: must call set_physics_name() before building Physics!");
73 libmesh_error_msg(
"ERROR: must call set_getpot() before building Physics!");
80 libmesh_assert(new_physics);
87 #endif // GRINS_PHYSICS_FACTORY_BASE_H
Abstract factory that provides availability of GetPot and a physics_name.
Physics abstract base class. Defines API for physics to be added to MultiphysicsSystem.
Builds Physics objects, used by PhysicsBuilder.
PhysicsFactoryBase(const std::string &physics_name)
static const GetPot * _input
We store only a raw pointer here because we can't make a copy.
virtual libMesh::UniquePtr< Physics > create()
Subclasses implement the actual construction of the Base object in create().
static std::string _physics_name
virtual libMesh::UniquePtr< Physics > build_physics(const GetPot &input, const std::string &physics_name)=0
Abstract factory that provides availability of GetPot.