33 #include "libmesh/getpot.h" 
   34 #include "libmesh/elem.h" 
   35 #include "libmesh/fe_interface.h" 
   46       _physics_name( physics_name ),
 
   65                                           const std::string& physics_name )
 
   67     int num_ids = input.vector_variable_size( 
"Physics/"+physics_name+
"/enabled_subdomains" );
 
   69     for( 
int i = 0; i < num_ids; i++ )
 
   71         libMesh::subdomain_id_type dumvar = input( 
"Physics/"+physics_name+
"/enabled_subdomains", -1, i );
 
  253                                                 const libMesh::Point& ,
 
  260                                                                                     const libMesh::FEGenericBase<libMesh::Real>* fe,
 
  261                                                                                     const libMesh::Point p )
 
  264     FEType fe_type = fe->get_fe_type();
 
  269     libmesh_assert(elem || fe_type.family == SCALAR);
 
  271     unsigned int elem_dim = elem ? elem->dim() : 0;
 
  273     UniquePtr<FEGenericBase<libMesh::Real> >
 
  274       fe_new(FEGenericBase<libMesh::Real>::build(elem_dim, fe_type));
 
  278     Point master_point = elem ?
 
  279       FEInterface::inverse_map(elem_dim, fe_type, elem, p) :
 
  282     std::vector<Point> coor(1, master_point);
 
  285     fe_new->reinit (elem, &coor);
 
  290 #ifdef GRINS_USE_GRVY_TIMERS 
  291   void Physics::attach_grvy_timer( GRVY::GRVY_Timer_Class* grvy_timer )
 
virtual void compute_postprocessed_quantity(unsigned int quantity_index, const AssemblyContext &context, const libMesh::Point &point, libMesh::Real &value)
 
GRINS::ICHandlingBase * _ic_handler
 
bool is_steady() const 
Returns whether or not this physics is being solved with a steady solver. 
 
virtual void register_postprocessing_vars(const GetPot &input, PostProcessedQuantities< libMesh::Real > &postprocessing)
Register name of postprocessed quantity with PostProcessedQuantities. 
 
libMesh::UniquePtr< libMesh::FEGenericBase< libMesh::Real > > build_new_fe(const libMesh::Elem *elem, const libMesh::FEGenericBase< libMesh::Real > *fe, const libMesh::Point p)
 
virtual void damping_residual(bool compute_jacobian, AssemblyContext &context, CachedValues &cache)
Damping matrix part(s) for element interiors. All boundary terms lie within the time_derivative part...
 
virtual void nonlocal_time_derivative(bool compute_jacobian, AssemblyContext &context, CachedValues &cache)
Time dependent part(s) of physics for scalar variables. 
 
virtual void compute_mass_residual_cache(const AssemblyContext &context, CachedValues &cache)
 
virtual void compute_element_time_derivative_cache(const AssemblyContext &context, CachedValues &cache)
 
virtual void element_constraint(bool compute_jacobian, AssemblyContext &context, CachedValues &cache)
Constraint part(s) of physics for element interiors. 
 
virtual void compute_side_constraint_cache(const AssemblyContext &context, CachedValues &cache)
 
virtual void compute_element_constraint_cache(const AssemblyContext &context, CachedValues &cache)
 
virtual void compute_side_time_derivative_cache(const AssemblyContext &context, CachedValues &cache)
 
ParameterUser base class. Utility methods for subclasses. 
 
virtual bool enabled_on_elem(const libMesh::Elem *elem)
Find if current physics is active on supplied element. 
 
virtual void side_constraint(bool compute_jacobian, AssemblyContext &context, CachedValues &cache)
Constraint part(s) of physics for boundaries of elements on the domain boundary. 
 
virtual void auxiliary_init(MultiphysicsSystem &system)
Any auxillary initialization a Physics class may need. 
 
Base class for reading and handling initial conditions for physics classes. 
 
virtual void nonlocal_mass_residual(bool compute_jacobian, AssemblyContext &context, CachedValues &cache)
Mass matrix part(s) for scalar variables. 
 
static void set_is_axisymmetric(bool is_axisymmetric)
Set whether we should treat the problem as axisymmetric. 
 
static bool _is_steady
Caches whether or not the solver that's being used is steady or not. 
 
virtual void set_time_evolving_vars(libMesh::FEMSystem *system)
Set which variables are time evolving. 
 
Interface with libMesh for solving Multiphysics problems. 
 
virtual void compute_damping_residual_cache(const AssemblyContext &context, CachedValues &cache)
 
virtual void init_context(AssemblyContext &context)
Initialize context for added physics variables. 
 
virtual void element_time_derivative(bool compute_jacobian, AssemblyContext &context, CachedValues &cache)
Time dependent part(s) of physics for element interiors. 
 
void parse_enabled_subdomains(const GetPot &input, const std::string &physics_name)
 
virtual void side_time_derivative(bool compute_jacobian, AssemblyContext &context, CachedValues &cache)
Time dependent part(s) of physics for boundaries of elements on the domain boundary. 
 
virtual void init_ic_data(const libMesh::FEMSystem &system, libMesh::CompositeFunction< libMesh::Number > &all_ics)
Override this method to initialize any system-dependent data. 
 
virtual void compute_nonlocal_mass_residual_cache(const AssemblyContext &context, CachedValues &cache)
 
virtual void compute_nonlocal_time_derivative_cache(const AssemblyContext &context, CachedValues &cache)
 
virtual void compute_nonlocal_constraint_cache(const AssemblyContext &context, CachedValues &cache)
 
static bool _is_axisymmetric
Caches whether we are solving an axisymmetric problem or not. 
 
virtual void nonlocal_constraint(bool compute_jacobian, AssemblyContext &context, CachedValues &cache)
Constraint part(s) of physics for scalar variables. 
 
void init_ics(libMesh::FEMSystem *system, libMesh::CompositeFunction< libMesh::Number > &all_ics)
 
std::set< libMesh::subdomain_id_type > _enabled_subdomains
Subdomains on which the current Physics class is enabled. 
 
void set_is_steady(bool is_steady)
Sets whether this physics is to be solved with a steady solver or not. 
 
virtual void mass_residual(bool compute_jacobian, AssemblyContext &context, CachedValues &cache)
Mass matrix part(s) for element interiors. All boundary terms lie within the time_derivative part...