25 #ifndef GRINS_PHYSICS_FACTORY_BASE_H 
   26 #define GRINS_PHYSICS_FACTORY_BASE_H 
   51     virtual libMesh::UniquePtr<Physics> 
build_physics( 
const GetPot& input,
 
   52                                                        const std::string& physics_name ) =0;
 
   56     virtual libMesh::UniquePtr<Physics> 
create();
 
   65       libmesh_error_msg(
"ERROR: must call set_physics_name() before building Physics!");
 
   68       libmesh_error_msg(
"ERROR: must call set_getpot() before building Physics!");
 
   75     libmesh_assert(new_physics);
 
   82 #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()
 
static std::string _physics_name
 
virtual libMesh::UniquePtr< Physics > build_physics(const GetPot &input, const std::string &physics_name)=0