25 #ifndef GRINS_VARIABLE_BUILDER_H
26 #define GRINS_VARIABLE_BUILDER_H
33 #include "libmesh/auto_ptr.h"
41 class MultiphysicsSystem;
65 const std::string& var_name );
71 const std::vector<std::string>& var_names,
72 const std::string& fe_family,
73 const std::string& order,
74 std::vector<VariableIndex>& var_indices,
75 const std::set<libMesh::subdomain_id_type>& subdomain_ids);
79 SharedPtr<FEVariablesBase>
build_fe_var(
const std::string& var_type,
80 const std::vector<std::string>& var_names,
81 const std::vector<VariableIndex>& var_indices,
82 const std::set<libMesh::subdomain_id_type>& subdomain_ids );
87 #endif // GRINS_VARIABLE_BUILDER_H
virtual void build_variables_impl(const GetPot &input, MultiphysicsSystem &system)=0
Implementation of Variable construction done in subclasses.
void add_variable_to_warehouse(SharedPtr< FEVariablesBase > &fe_var, const std::string &var_name)
Adds/registers the fe_var to VariableWarehouse.
Manages runtime construction of the FEVariableBase objects.
void add_vars_to_system(MultiphysicsSystem &system, const std::vector< std::string > &var_names, const std::string &fe_family, const std::string &order, std::vector< VariableIndex > &var_indices, const std::set< libMesh::subdomain_id_type > &subdomain_ids)
Given the names, family, and order, this adds the variables to the system and populates var_indices...
static void build_variables(const GetPot &input, MultiphysicsSystem &system)
Interface with libMesh for solving Multiphysics problems.
SharedPtr< FEVariablesBase > build_fe_var(const std::string &var_type, const std::vector< std::string > &var_names, const std::vector< VariableIndex > &var_indices, const std::set< libMesh::subdomain_id_type > &subdomain_ids)
Sets appropriate data in the VariableFactoryAbstract and calls VariableFactoryAbstract::build() ...