25 #ifndef GRINS_CATALYCITY_FACTORY_ABSTRACT_H
26 #define GRINS_CATALYCITY_FACTORY_ABSTRACT_H
52 virtual libMesh::UniquePtr<CatalycityBase>
build_catalycity(
const GetPot& input,
53 const std::string& section ) =0;
65 virtual libMesh::UniquePtr<CatalycityBase>
create();
77 return new_catalycity;
84 libmesh_error_msg(
"ERROR: must call set_getpot() before building Catalycity!");
86 if(
_section == std::string(
"DIE!") )
87 libmesh_error_msg(
"ERROR: must call set_section() before building Catalycity!");
99 #endif // GRINS_CATALYCITY_FACTORY_ABSTRACT_H
virtual libMesh::UniquePtr< CatalycityBase > build_catalycity(const GetPot &input, const std::string §ion)=0
static std::string _section
CatalycityFactoryAbstract(const std::string &physics_name)
static void set_section(const std::string §ion)
virtual void check_state() const
Helper function to reduce code duplication.
virtual void reset_state()
Helper function to reduce code duplication.
static const GetPot * _input
We store only a raw pointer here because we can't make a copy.
virtual libMesh::UniquePtr< CatalycityBase > create()
Subclasses implement the actual construction of the Base object in create().
~CatalycityFactoryAbstract()
Abstract factory that provides availability of GetPot.