GRINS-0.7.0
List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions
GRINS::Physics Class Referenceabstract

Physics abstract base class. Defines API for physics to be added to MultiphysicsSystem. More...

#include <physics.h>

Inheritance diagram for GRINS::Physics:
Inheritance graph
[legend]
Collaboration diagram for GRINS::Physics:
Collaboration graph
[legend]

Public Member Functions

 Physics (const GRINS::PhysicsName &physics_name, const GetPot &input)
 
virtual ~Physics ()
 
virtual void init_variables (libMesh::FEMSystem *system)=0
 Initialize variables for this physics. More...
 
virtual bool enabled_on_elem (const libMesh::Elem *elem)
 Find if current physics is active on supplied element. More...
 
void set_is_steady (bool is_steady)
 Sets whether this physics is to be solved with a steady solver or not. More...
 
bool is_steady () const
 Returns whether or not this physics is being solved with a steady solver. More...
 
virtual void set_time_evolving_vars (libMesh::FEMSystem *system)
 Set which variables are time evolving. More...
 
virtual void auxiliary_init (MultiphysicsSystem &system)
 Any auxillary initialization a Physics class may need. More...
 
virtual void register_postprocessing_vars (const GetPot &input, PostProcessedQuantities< libMesh::Real > &postprocessing)
 Register name of postprocessed quantity with PostProcessedQuantities. More...
 
virtual void init_context (AssemblyContext &context)
 Initialize context for added physics variables. More...
 
virtual void element_time_derivative (bool compute_jacobian, AssemblyContext &context, CachedValues &cache)
 Time dependent part(s) of physics for element interiors. More...
 
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. More...
 
virtual void nonlocal_time_derivative (bool compute_jacobian, AssemblyContext &context, CachedValues &cache)
 Time dependent part(s) of physics for scalar variables. More...
 
virtual void element_constraint (bool compute_jacobian, AssemblyContext &context, CachedValues &cache)
 Constraint part(s) of physics for element interiors. More...
 
virtual void side_constraint (bool compute_jacobian, AssemblyContext &context, CachedValues &cache)
 Constraint part(s) of physics for boundaries of elements on the domain boundary. More...
 
virtual void nonlocal_constraint (bool compute_jacobian, AssemblyContext &context, CachedValues &cache)
 Constraint part(s) of physics for scalar variables. More...
 
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. More...
 
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. More...
 
virtual void nonlocal_mass_residual (bool compute_jacobian, AssemblyContext &context, CachedValues &cache)
 Mass matrix part(s) for scalar variables. More...
 
void init_ics (libMesh::FEMSystem *system, libMesh::CompositeFunction< libMesh::Number > &all_ics)
 
virtual void compute_element_time_derivative_cache (const AssemblyContext &context, CachedValues &cache)
 
virtual void compute_side_time_derivative_cache (const AssemblyContext &context, CachedValues &cache)
 
virtual void compute_nonlocal_time_derivative_cache (const AssemblyContext &context, CachedValues &cache)
 
virtual void compute_element_constraint_cache (const AssemblyContext &context, CachedValues &cache)
 
virtual void compute_side_constraint_cache (const AssemblyContext &context, CachedValues &cache)
 
virtual void compute_nonlocal_constraint_cache (const AssemblyContext &context, CachedValues &cache)
 
virtual void compute_damping_residual_cache (const AssemblyContext &context, CachedValues &cache)
 
virtual void compute_mass_residual_cache (const AssemblyContext &context, CachedValues &cache)
 
virtual void compute_nonlocal_mass_residual_cache (const AssemblyContext &context, CachedValues &cache)
 
virtual void compute_postprocessed_quantity (unsigned int quantity_index, const AssemblyContext &context, const libMesh::Point &point, libMesh::Real &value)
 
ICHandlingBaseget_ic_handler ()
 
- Public Member Functions inherited from GRINS::ParameterUser
 ParameterUser (const std::string &user_name)
 
virtual ~ParameterUser ()
 
virtual void set_parameter (libMesh::Number &param_variable, const GetPot &input, const std::string &param_name, libMesh::Number param_default)
 Each subclass can simultaneously read a parameter value from. More...
 
virtual void set_parameter (libMesh::ParsedFunction< libMesh::Number, libMesh::Gradient > &func, const GetPot &input, const std::string &func_param_name, const std::string &param_default)
 Each subclass can simultaneously read a parsed function from. More...
 
virtual void set_parameter (libMesh::ParsedFEMFunction< libMesh::Number > &func, const GetPot &input, const std::string &func_param_name, const std::string &param_default)
 Each subclass can simultaneously read a parsed function from. More...
 
virtual void move_parameter (const libMesh::Number &old_parameter, libMesh::Number &new_parameter)
 When cloning an object, we need to update parameter pointers. More...
 
virtual void move_parameter (const libMesh::ParsedFunction< libMesh::Number, libMesh::Gradient > &old_func, libMesh::ParsedFunction< libMesh::Number, libMesh::Gradient > &new_func)
 When cloning an object, we need to update parameter pointers. More...
 
virtual void move_parameter (const libMesh::ParsedFEMFunction< libMesh::Number > &old_func, libMesh::ParsedFEMFunction< libMesh::Number > &new_func)
 When cloning an object, we need to update parameter pointers. More...
 
virtual void register_parameter (const std::string &param_name, libMesh::ParameterMultiAccessor< libMesh::Number > &param_pointer) const
 Each subclass will register its copy of an independent. More...
 

Static Public Member Functions

static void set_is_axisymmetric (bool is_axisymmetric)
 Set whether we should treat the problem as axisymmetric. More...
 
static bool is_axisymmetric ()
 

Protected Member Functions

libMesh::UniquePtr< libMesh::FEGenericBase< libMesh::Real > > build_new_fe (const libMesh::Elem *elem, const libMesh::FEGenericBase< libMesh::Real > *fe, const libMesh::Point p)
 
void parse_enabled_subdomains (const GetPot &input, const std::string &physics_name)
 

Protected Attributes

const PhysicsName _physics_name
 Name of the physics object. Used for reading physics specific inputs. More...
 
GRINS::ICHandlingBase_ic_handler
 
std::set< libMesh::subdomain_id_type > _enabled_subdomains
 Subdomains on which the current Physics class is enabled. More...
 

Static Protected Attributes

static bool _is_steady = false
 Caches whether or not the solver that's being used is steady or not. More...
 
static bool _is_axisymmetric = false
 Caches whether we are solving an axisymmetric problem or not. More...
 

Private Member Functions

 Physics ()
 

Additional Inherited Members

- Static Public Attributes inherited from GRINS::ParameterUser
static std::string zero_vector_function = std::string("{0}")
 A parseable function string with LIBMESH_DIM components, all 0. More...
 

Detailed Description

Physics abstract base class. Defines API for physics to be added to MultiphysicsSystem.

This abstract base class defines the API for use within the MultiphysicsSystem. Each physics instantiation must initialize its varaibles (and element orders and types), initialize the DiffContext for the added variables, and provide element and boundary routines for assembly (to be called by MultiphysicsSystem).

MultiphysicsSystem (through FEMSystem) solves the following equation:

$M(u)\dot{u} = F(u)$

M = mass matrix u = solution vector F = time derivative

Note that for the nonlinear system that is solved for implicit time stepping is:

$M(u_{\theta})(u^n - u^{n+1}) + \Delta t F(u) = 0$

Definition at line 107 of file physics.h.

Constructor & Destructor Documentation

GRINS::Physics::Physics ( const GRINS::PhysicsName physics_name,
const GetPot &  input 
)

Definition at line 43 of file physics.C.

References parse_enabled_subdomains(), and set_is_axisymmetric().

45  : ParameterUser(physics_name),
46  _physics_name( physics_name ),
47  _ic_handler(new ICHandlingBase(physics_name))
48  {
49  this->parse_enabled_subdomains(input,physics_name);
50 
51  // Check if this is an axisymmetric problem
52  // There will be redundant calls for multiple Physics objects,
53  // but this guarantees we've parsed is_axisymmetric and then
54  // we can check in subclasses and error out if the Physics
55  // doesn't support axisymmetry.
56  Physics::set_is_axisymmetric( input("Physics/is_axisymmetric",false) );
57  }
GRINS::ICHandlingBase * _ic_handler
Definition: physics.h:269
ParameterUser(const std::string &user_name)
const PhysicsName _physics_name
Name of the physics object. Used for reading physics specific inputs.
Definition: physics.h:267
static void set_is_axisymmetric(bool is_axisymmetric)
Set whether we should treat the problem as axisymmetric.
Definition: physics.h:130
void parse_enabled_subdomains(const GetPot &input, const std::string &physics_name)
Definition: physics.C:64
GRINS::Physics::~Physics ( )
virtual

Definition at line 59 of file physics.C.

References _ic_handler.

60  {
61  if( _ic_handler ) delete _ic_handler;
62  }
GRINS::ICHandlingBase * _ic_handler
Definition: physics.h:269
GRINS::Physics::Physics ( )
private

Member Function Documentation

void GRINS::Physics::auxiliary_init ( MultiphysicsSystem system)
virtual

Any auxillary initialization a Physics class may need.

This is called after all variables are added, so this method can safely query the MultiphysicsSystem about variable information.

Reimplemented in GRINS::IncompressibleNavierStokes< Viscosity >, GRINS::Stokes< Viscosity >, GRINS::LowMachNavierStokes< Viscosity, SpecificHeat, ThermalConductivity >, and GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >.

Definition at line 106 of file physics.C.

107  {
108  return;
109  }
libMesh::UniquePtr< libMesh::FEGenericBase< libMesh::Real > > GRINS::Physics::build_new_fe ( const libMesh::Elem *  elem,
const libMesh::FEGenericBase< libMesh::Real > *  fe,
const libMesh::Point  p 
)
protected
Todo:
This is straight up copied from libMesh. Need to make this available from libMesh.

Definition at line 259 of file physics.C.

262  {
263  using namespace libMesh;
264  FEType fe_type = fe->get_fe_type();
265 
266  // If we don't have an Elem to evaluate on, then the only functions
267  // we can sensibly evaluate are the scalar dofs which are the same
268  // everywhere.
269  libmesh_assert(elem || fe_type.family == SCALAR);
270 
271  unsigned int elem_dim = elem ? elem->dim() : 0;
272 
273  UniquePtr<FEGenericBase<libMesh::Real> >
274  fe_new(FEGenericBase<libMesh::Real>::build(elem_dim, fe_type));
275 
276  // Map the physical co-ordinates to the master co-ordinates using the inverse_map from fe_interface.h
277  // Build a vector of point co-ordinates to send to reinit
278  Point master_point = elem ?
279  FEInterface::inverse_map(elem_dim, fe_type, elem, p) :
280  Point(0);
281 
282  std::vector<Point> coor(1, master_point);
283 
284  // Reinitialize the element and compute the shape function values at coor
285  fe_new->reinit (elem, &coor);
286 
287  return fe_new;
288  }
void GRINS::Physics::compute_damping_residual_cache ( const AssemblyContext context,
CachedValues cache 
)
virtual

Definition at line 170 of file physics.C.

Referenced by GRINS::MultiphysicsSystem::damping_residual().

172  {
173  return;
174  }
void GRINS::Physics::compute_element_constraint_cache ( const AssemblyContext context,
CachedValues cache 
)
virtual

Definition at line 152 of file physics.C.

Referenced by GRINS::MultiphysicsSystem::element_constraint().

154  {
155  return;
156  }
void GRINS::Physics::compute_element_time_derivative_cache ( const AssemblyContext context,
CachedValues cache 
)
virtual
void GRINS::Physics::compute_mass_residual_cache ( const AssemblyContext context,
CachedValues cache 
)
virtual

Definition at line 176 of file physics.C.

Referenced by GRINS::MultiphysicsSystem::mass_residual().

178  {
179  return;
180  }
void GRINS::Physics::compute_nonlocal_constraint_cache ( const AssemblyContext context,
CachedValues cache 
)
virtual

Definition at line 164 of file physics.C.

Referenced by GRINS::MultiphysicsSystem::nonlocal_constraint().

166  {
167  return;
168  }
void GRINS::Physics::compute_nonlocal_mass_residual_cache ( const AssemblyContext context,
CachedValues cache 
)
virtual

Definition at line 182 of file physics.C.

Referenced by GRINS::MultiphysicsSystem::nonlocal_mass_residual().

184  {
185  return;
186  }
void GRINS::Physics::compute_nonlocal_time_derivative_cache ( const AssemblyContext context,
CachedValues cache 
)
virtual

Definition at line 146 of file physics.C.

Referenced by GRINS::MultiphysicsSystem::nonlocal_time_derivative().

148  {
149  return;
150  }
void GRINS::Physics::compute_postprocessed_quantity ( unsigned int  quantity_index,
const AssemblyContext context,
const libMesh::Point &  point,
libMesh::Real &  value 
)
virtual
void GRINS::Physics::compute_side_constraint_cache ( const AssemblyContext context,
CachedValues cache 
)
virtual

Definition at line 158 of file physics.C.

Referenced by GRINS::MultiphysicsSystem::side_constraint().

160  {
161  return;
162  }
void GRINS::Physics::compute_side_time_derivative_cache ( const AssemblyContext context,
CachedValues cache 
)
virtual

Definition at line 140 of file physics.C.

Referenced by GRINS::MultiphysicsSystem::side_time_derivative().

142  {
143  return;
144  }
void GRINS::Physics::damping_residual ( bool  compute_jacobian,
AssemblyContext context,
CachedValues cache 
)
virtual

Damping matrix part(s) for element interiors. All boundary terms lie within the time_derivative part.

Reimplemented in GRINS::ElasticCableRayleighDamping< StressStrainLaw >, and GRINS::ElasticMembraneRayleighDamping< StressStrainLaw >.

Definition at line 230 of file physics.C.

Referenced by GRINS::MultiphysicsSystem::damping_residual().

233  {
234  return;
235  }
void GRINS::Physics::element_constraint ( bool  compute_jacobian,
AssemblyContext context,
CachedValues cache 
)
virtual
void GRINS::Physics::element_time_derivative ( bool  compute_jacobian,
AssemblyContext context,
CachedValues cache 
)
virtual

Time dependent part(s) of physics for element interiors.

Reimplemented in GRINS::AxisymmetricBoussinesqBuoyancy, GRINS::SpalartAllmaras< Viscosity >, GRINS::AxisymmetricHeatTransfer< Conductivity >, GRINS::AveragedFan< Viscosity >, GRINS::ParsedVelocitySource< Viscosity >, GRINS::VelocityPenalty< Viscosity >, GRINS::AveragedTurbine< Viscosity >, GRINS::VelocityDrag< Viscosity >, GRINS::IncompressibleNavierStokes< Viscosity >, GRINS::BoussinesqBuoyancy, GRINS::AveragedTurbineAdjointStabilization< Viscosity >, GRINS::LowMachNavierStokes< Viscosity, SpecificHeat, ThermalConductivity >, GRINS::VelocityDragAdjointStabilization< Viscosity >, GRINS::AveragedFanAdjointStabilization< Viscosity >, GRINS::Stokes< Viscosity >, GRINS::HeatConduction< Conductivity >, GRINS::HeatTransfer< Conductivity >, GRINS::BoussinesqBuoyancySPGSMStabilization< Viscosity >, GRINS::ConvectionDiffusion, GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >, GRINS::BoussinesqBuoyancyAdjointStabilization< Viscosity >, GRINS::ParsedVelocitySourceAdjointStabilization< Viscosity >, GRINS::VelocityPenaltyAdjointStabilization< Viscosity >, GRINS::ElasticCable< StressStrainLaw >, GRINS::ElasticMembrane< StressStrainLaw >, GRINS::ParsedSourceTerm, GRINS::SpalartAllmarasSPGSMStabilization< Viscosity >, GRINS::HeatTransferAdjointStabilization< Conductivity >, GRINS::HeatTransferSPGSMStabilization< Conductivity >, GRINS::LowMachNavierStokesBraackStabilization< Viscosity, SpecificHeat, ThermalConductivity >, GRINS::LowMachNavierStokesVMSStabilization< Viscosity, SpecificHeat, ThermalConductivity >, GRINS::ConstantSourceTerm, GRINS::ElasticMembraneConstantPressure, GRINS::IncompressibleNavierStokesAdjointStabilization< Viscosity >, GRINS::IncompressibleNavierStokesSPGSMStabilization< Viscosity >, GRINS::LowMachNavierStokesSPGSMStabilization< Viscosity, SpecificHeat, ThermalConductivity >, and GRINS::ElasticCableConstantGravity.

Definition at line 188 of file physics.C.

Referenced by GRINS::MultiphysicsSystem::element_time_derivative().

191  {
192  return;
193  }
bool GRINS::Physics::enabled_on_elem ( const libMesh::Elem *  elem)
virtual

Find if current physics is active on supplied element.

Definition at line 76 of file physics.C.

References _enabled_subdomains.

77  {
78  // Check if enabled_subdomains flag has been set and if we're
79  // looking at a real element (rather than a nonlocal evaluation)
80  if( !elem || _enabled_subdomains.empty() )
81  return true;
82 
83  // Check if current physics is enabled on elem
84  if( _enabled_subdomains.find( elem->subdomain_id() ) == _enabled_subdomains.end() )
85  return false;
86 
87  return true;
88  }
std::set< libMesh::subdomain_id_type > _enabled_subdomains
Subdomains on which the current Physics class is enabled.
Definition: physics.h:272
ICHandlingBase * GRINS::Physics::get_ic_handler ( )
inline

Definition at line 293 of file physics.h.

References _ic_handler.

294  {
295  return _ic_handler;
296  }
GRINS::ICHandlingBase * _ic_handler
Definition: physics.h:269
void GRINS::Physics::init_context ( AssemblyContext context)
virtual

Initialize context for added physics variables.

Reimplemented in GRINS::SpalartAllmaras< Viscosity >, GRINS::AxisymmetricBoussinesqBuoyancy, GRINS::ScalarODE, GRINS::AxisymmetricHeatTransfer< Conductivity >, GRINS::IncompressibleNavierStokesBase< Viscosity >, GRINS::LowMachNavierStokesBase< Viscosity, SpecificHeat, ThermalConductivity >, GRINS::AveragedFan< Viscosity >, GRINS::HeatTransferBase< Conductivity >, GRINS::AveragedTurbine< Viscosity >, GRINS::VelocityDrag< Viscosity >, GRINS::ParsedVelocitySource< Viscosity >, GRINS::VelocityPenalty< Viscosity >, GRINS::AveragedTurbineAdjointStabilization< Viscosity >, GRINS::ReactingLowMachNavierStokesAbstract, GRINS::VelocityDragAdjointStabilization< Viscosity >, GRINS::AveragedFanAdjointStabilization< Viscosity >, GRINS::LowMachNavierStokes< Viscosity, SpecificHeat, ThermalConductivity >, GRINS::ConvectionDiffusion, GRINS::BoussinesqBuoyancyAdjointStabilization< Viscosity >, GRINS::HeatConduction< Conductivity >, GRINS::ParsedVelocitySourceAdjointStabilization< Viscosity >, GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >, GRINS::VelocityPenaltyAdjointStabilization< Viscosity >, GRINS::LowMachNavierStokesStabilizationBase< Viscosity, SpecificHeat, ThermalConductivity >, GRINS::ElasticCableAbstract, GRINS::ElasticMembraneAbstract, GRINS::HeatTransferStabilizationBase< Conductivity >, GRINS::IncompressibleNavierStokesStabilizationBase< Viscosity >, GRINS::SpalartAllmarasStabilizationBase< Viscosity >, and GRINS::ParsedSourceTerm.

Definition at line 123 of file physics.C.

124  {
125  return;
126  }
void GRINS::Physics::init_ics ( libMesh::FEMSystem *  system,
libMesh::CompositeFunction< libMesh::Number > &  all_ics 
)

Definition at line 112 of file physics.C.

References _ic_handler, and GRINS::ICHandlingBase::init_ic_data().

114  {
115  if( _ic_handler )
116  {
117  _ic_handler->init_ic_data( *system, all_ics );
118  }
119 
120  return;
121  }
GRINS::ICHandlingBase * _ic_handler
Definition: physics.h:269
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 GRINS::Physics::init_variables ( libMesh::FEMSystem *  system)
pure virtual
static bool GRINS::Physics::is_axisymmetric ( )
inlinestatic
bool GRINS::Physics::is_steady ( ) const

Returns whether or not this physics is being solved with a steady solver.

Definition at line 96 of file physics.C.

References _is_steady.

Referenced by set_is_steady().

97  {
98  return _is_steady;
99  }
static bool _is_steady
Caches whether or not the solver that's being used is steady or not.
Definition: physics.h:277
void GRINS::Physics::mass_residual ( bool  compute_jacobian,
AssemblyContext context,
CachedValues cache 
)
virtual
void GRINS::Physics::nonlocal_constraint ( bool  compute_jacobian,
AssemblyContext context,
CachedValues cache 
)
virtual

Constraint part(s) of physics for scalar variables.

Reimplemented in GRINS::ScalarODE.

Definition at line 223 of file physics.C.

Referenced by GRINS::MultiphysicsSystem::nonlocal_constraint().

226  {
227  return;
228  }
void GRINS::Physics::nonlocal_mass_residual ( bool  compute_jacobian,
AssemblyContext context,
CachedValues cache 
)
virtual

Mass matrix part(s) for scalar variables.

Reimplemented in GRINS::ScalarODE, and GRINS::AveragedTurbine< Viscosity >.

Definition at line 244 of file physics.C.

Referenced by GRINS::MultiphysicsSystem::nonlocal_mass_residual().

247  {
248  return;
249  }
void GRINS::Physics::nonlocal_time_derivative ( bool  compute_jacobian,
AssemblyContext context,
CachedValues cache 
)
virtual

Time dependent part(s) of physics for scalar variables.

Reimplemented in GRINS::AveragedTurbine< Viscosity >, and GRINS::ScalarODE.

Definition at line 202 of file physics.C.

Referenced by GRINS::MultiphysicsSystem::nonlocal_time_derivative().

205  {
206  return;
207  }
void GRINS::Physics::parse_enabled_subdomains ( const GetPot &  input,
const std::string &  physics_name 
)
protected

Definition at line 64 of file physics.C.

References _enabled_subdomains.

Referenced by GRINS::ElasticCableRayleighDamping< StressStrainLaw >::ElasticCableRayleighDamping(), GRINS::ElasticMembraneConstantPressure::ElasticMembraneConstantPressure(), GRINS::ElasticMembraneRayleighDamping< StressStrainLaw >::ElasticMembraneRayleighDamping(), and Physics().

66  {
67  int num_ids = input.vector_variable_size( "Physics/"+physics_name+"/enabled_subdomains" );
68 
69  for( int i = 0; i < num_ids; i++ )
70  {
71  libMesh::subdomain_id_type dumvar = input( "Physics/"+physics_name+"/enabled_subdomains", -1, i );
72  _enabled_subdomains.insert( dumvar );
73  }
74  }
std::set< libMesh::subdomain_id_type > _enabled_subdomains
Subdomains on which the current Physics class is enabled.
Definition: physics.h:272
void GRINS::Physics::register_postprocessing_vars ( const GetPot &  input,
PostProcessedQuantities< libMesh::Real > &  postprocessing 
)
virtual

Register name of postprocessed quantity with PostProcessedQuantities.

Each Physics class will need to cache an unsigned int corresponding to each postprocessed quantity. This will be used in computing the values and putting them in the CachedVariables object.

Reimplemented in GRINS::ParsedVelocitySource< Viscosity >, GRINS::VelocityPenalty< Viscosity >, GRINS::AveragedFan< Viscosity >, GRINS::IncompressibleNavierStokes< Viscosity >, GRINS::LowMachNavierStokes< Viscosity, SpecificHeat, ThermalConductivity >, GRINS::HeatTransfer< Conductivity >, GRINS::ReactingLowMachNavierStokes< Mixture, Evaluator >, GRINS::ElasticCable< StressStrainLaw >, and GRINS::ElasticMembrane< StressStrainLaw >.

Definition at line 128 of file physics.C.

130  {
131  return;
132  }
static void GRINS::Physics::set_is_axisymmetric ( bool  is_axisymmetric)
inlinestatic

Set whether we should treat the problem as axisymmetric.

Definition at line 130 of file physics.h.

References _is_axisymmetric, and is_axisymmetric().

Referenced by Physics().

static bool is_axisymmetric()
Definition: physics.h:133
static bool _is_axisymmetric
Caches whether we are solving an axisymmetric problem or not.
Definition: physics.h:280
void GRINS::Physics::set_is_steady ( bool  is_steady)

Sets whether this physics is to be solved with a steady solver or not.

Since the member variable is static, only needs to be called on a single physics.

Definition at line 90 of file physics.C.

References _is_steady, and is_steady().

91  {
93  return;
94  }
bool is_steady() const
Returns whether or not this physics is being solved with a steady solver.
Definition: physics.C:96
static bool _is_steady
Caches whether or not the solver that's being used is steady or not.
Definition: physics.h:277
void GRINS::Physics::set_time_evolving_vars ( libMesh::FEMSystem *  system)
virtual

Set which variables are time evolving.

Set those variables which evolve in time (as opposed to variables that behave like constraints). This is done separately from init_variables() because the MultiphysicsSystem must initialize its base class before time_evolving variables can be set. Default implementation is no time evolving variables.

Reimplemented in GRINS::SpalartAllmaras< Viscosity >, GRINS::ScalarODE, GRINS::AxisymmetricHeatTransfer< Conductivity >, GRINS::IncompressibleNavierStokesBase< Viscosity >, GRINS::LowMachNavierStokesBase< Viscosity, SpecificHeat, ThermalConductivity >, GRINS::AveragedTurbineBase< Viscosity >, GRINS::HeatTransferBase< Conductivity >, GRINS::ReactingLowMachNavierStokesAbstract, GRINS::VelocityPenaltyBase< Viscosity >, GRINS::ParsedVelocitySourceBase< Viscosity >, GRINS::SolidMechanicsAbstract, GRINS::ConvectionDiffusion, and GRINS::HeatConduction< Conductivity >.

Definition at line 101 of file physics.C.

102  {
103  return;
104  }
void GRINS::Physics::side_constraint ( bool  compute_jacobian,
AssemblyContext context,
CachedValues cache 
)
virtual

Constraint part(s) of physics for boundaries of elements on the domain boundary.

Definition at line 216 of file physics.C.

Referenced by GRINS::MultiphysicsSystem::side_constraint().

219  {
220  return;
221  }
void GRINS::Physics::side_time_derivative ( bool  compute_jacobian,
AssemblyContext context,
CachedValues cache 
)
virtual

Time dependent part(s) of physics for boundaries of elements on the domain boundary.

Definition at line 195 of file physics.C.

Referenced by GRINS::MultiphysicsSystem::side_time_derivative().

198  {
199  return;
200  }

Member Data Documentation

std::set<libMesh::subdomain_id_type> GRINS::Physics::_enabled_subdomains
protected

Subdomains on which the current Physics class is enabled.

Definition at line 272 of file physics.h.

Referenced by enabled_on_elem(), and parse_enabled_subdomains().

GRINS::ICHandlingBase* GRINS::Physics::_ic_handler
protected
bool GRINS::Physics::_is_axisymmetric = false
staticprotected

Caches whether we are solving an axisymmetric problem or not.

Definition at line 280 of file physics.h.

Referenced by is_axisymmetric(), and set_is_axisymmetric().

bool GRINS::Physics::_is_steady = false
staticprotected

Caches whether or not the solver that's being used is steady or not.

This is need, for example, in flow stabilization as the tau terms change depending on whether the solver is steady or unsteady.

Definition at line 277 of file physics.h.

Referenced by is_steady(), and set_is_steady().

const PhysicsName GRINS::Physics::_physics_name
protected

Name of the physics object. Used for reading physics specific inputs.

We use a reference because the physics names are const global objects in GRINS namespace

No, we use a copy, because otherwise as soon as the memory in std::set<std::string> requested_physics gets overwritten we get in trouble.

Definition at line 267 of file physics.h.

Referenced by GRINS::SourceTermBase::parse_var_info(), and GRINS::VelocityPenaltyBase< Viscosity >::VelocityPenaltyBase().


The documentation for this class was generated from the following files:

Generated on Thu Jun 2 2016 21:52:32 for GRINS-0.7.0 by  doxygen 1.8.10