OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
incompressible_single_component_NS_equations.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 //
3 // FCST: Fuel Cell Simulation Toolbox
4 //
5 // Copyright (C) 2006-2015 by Energy Systems Design Laboratory, University of Alberta
6 //
7 // This software is distributed under the MIT license
8 // For more information, see the README file in /doc/LICENSE
9 //
10 // - Class: incompressible_single_component_NS_equations.h
11 // - Description: This class describes steady-state incompressible and isothermal Navier-Stokes
12 // fluid transport equations for a single-phase single-component case
13 // - Developers: Valentin N. Zingan, University of Alberta
14 //
15 // ----------------------------------------------------------------------------
16 
17 #ifndef _FCST_FUELCELLSHOP_EQUATION_INCOMPRESSIBLE_SINGLE_COMPONENT_NS_EQUATIONS_H_
18 #define _FCST_FUELCELLSHOP_EQUATION_INCOMPRESSIBLE_SINGLE_COMPONENT_NS_EQUATIONS_H_
19 
21 #include <layers/channel.h>
23 #include <utils/fcst_units.h>
24 
25 namespace FuelCellShop
26 {
27  namespace Equation
28  {
29 
204  template<int dim>
206  {
207  public:
208 
210 
211 
215  IncompressibleSingleComponentNSEquations(FuelCell::SystemManagement& system_management,boost::shared_ptr< FuelCell::ApplicationCore::ApplicationData > data =
216  boost::shared_ptr< FuelCell::ApplicationCore::ApplicationData >());
217 
222 
226  virtual void declare_parameters(ParameterHandler& param) const;
227 
231  virtual void initialize(ParameterHandler& param);
232 
234 
236 
237 
244 
251 
258 
265 
267 
269 
270 
275  const double& get_inlet_outlet_velocity_max() const
276  {
278  }
279 
284  const std::string get_inlet_outlet_equation() const
285  {
286  return inlet_outlet_equation;
287  }
288 
292  const unsigned int get_inlet_outlet_boundary_ID() const
293  {
295  }
296 
301  const std::string get_press_vel_comp_apply_to() const
302  {
304  }
305 
310  virtual void print_equation_info() const;
311 
313 
314  protected:
315 
317 
318 
323  virtual void make_internal_cell_couplings();
324 
329  virtual void make_matrix_block_indices();
330 
335  virtual void make_residual_indices();
336 
338 
340  // DATA //
342 
344 
345 
352 
359 
366 
373 
380 
387 
401  std::string drag_in_porous_media;
402 
434 
436 
438 
439 
444  Tensor<1,dim> gravity_acceleration;
445 
449  SymmetricTensor<2,dim> unit;
450 
454  double theta;
455 
459  double eta;
460 
468 
470 
471  };
472 
473  } // Equation
474 
475 } // FuelCellShop
476 
477 #endif
boost::shared_ptr< FuelCell::ApplicationCore::ApplicationData > data
Data object for the application data to be passed to the equation classes.
Definition: equation_base.h:890
This class deals with Navier-Stokes fluid transport equations.
Definition: incompressible_single_component_NS_equations.h:205
const unsigned int get_inlet_outlet_boundary_ID() const
Outputs the Boundary ID to apply Dirichlet velocity or Dirichlet pressure to.
Definition: incompressible_single_component_NS_equations.h:292
const double & get_inlet_outlet_velocity_max() const
This function returns inlet_outlet_velocity_max.
Definition: incompressible_single_component_NS_equations.h:275
IncompressibleSingleComponentNSEquations(FuelCell::SystemManagement &system_management, boost::shared_ptr< FuelCell::ApplicationCore::ApplicationData > data=boost::shared_ptr< FuelCell::ApplicationCore::ApplicationData >())
Constructor.
virtual void make_matrix_block_indices()
This function fills out matrix_block_indices.
FuelCell::SystemManagement * system_management
Pointer to the external YourApplication&lt;dim&gt;::system_management object.
Definition: equation_base.h:798
std::string inlet_outlet_equation
Definition: incompressible_single_component_NS_equations.h:465
std::string press_vel_comp_apply_to
Definition: incompressible_single_component_NS_equations.h:467
virtual void make_internal_cell_couplings()
This function fills out internal_cell_couplings.
virtual void make_residual_indices()
This function fills out residual_indices.
This class is created for the objects handed to the mesh loops.
Definition: mesh_loop_info_objects.h:544
virtual void assemble_cell_residual(FuelCell::ApplicationCore::FEVector &cell_residual, const typename FuelCell::ApplicationCore::DoFApplication< dim >::CellInfo &cell_info, FuelCellShop::Layer::BaseLayer< dim > *const layer)
Assemble local cell residual.
virtual void declare_parameters(ParameterHandler &param) const
Declare parameters.
virtual void assemble_bdry_matrix(FuelCell::ApplicationCore::MatrixVector &bdry_matrices, const typename FuelCell::ApplicationCore::DoFApplication< dim >::FaceInfo &bdry_info, FuelCellShop::Layer::BaseLayer< dim > *const layer)
Assemble local boundary matrix.
std::vector< MatrixBlock< FullMatrix< double > > > MatrixVector
The matrix vector used in the mesh loops.
Definition: matrix_block.h:102
std::string drag_in_porous_media
This object indicates which form of the drag term is supposed to be chosen.
Definition: incompressible_single_component_NS_equations.h:401
const std::string get_press_vel_comp_apply_to() const
Outputs which equation to apply equation to (Pressure, VelocityX, VelocityY, VelocityZ).
Definition: incompressible_single_component_NS_equations.h:301
double theta
Navier slip coefficient, .
Definition: incompressible_single_component_NS_equations.h:454
bool shear_stress_in_porous_media
This object indicates whether the shear stress term is ON or OFF in porous media. ...
Definition: incompressible_single_component_NS_equations.h:379
double inlet_outlet_velocity_max
Maximum inlet-outlet velocity, .
Definition: incompressible_single_component_NS_equations.h:464
bool shear_stress_in_channels
This object indicates whether the shear stress term is ON or OFF in channels.
Definition: incompressible_single_component_NS_equations.h:358
double eta
Normal velocity suppression coefficient, .
Definition: incompressible_single_component_NS_equations.h:459
SymmetricTensor< 2, dim > unit
Unit tensor, .
Definition: incompressible_single_component_NS_equations.h:449
virtual void print_equation_info() const
This function prints out the equations info.
unsigned int inlet_outlet_boundary_ID
Definition: incompressible_single_component_NS_equations.h:466
Tensor< 1, dim > gravity_acceleration
Gravitational acceleration, .
Definition: incompressible_single_component_NS_equations.h:444
This is the base class used for all Equation classes.
Definition: equation_base.h:160
IMPORTANT: Add all new solution variables and equations here !
Definition: system_management.h:300
virtual void assemble_bdry_residual(FuelCell::ApplicationCore::FEVector &bdry_residual, const typename FuelCell::ApplicationCore::DoFApplication< dim >::FaceInfo &bdry_info, FuelCellShop::Layer::BaseLayer< dim > *const layer)
Assemble local boundary residual.
const std::string get_inlet_outlet_equation() const
User can specify an equation to use for density/velocity profile at boundary.
Definition: incompressible_single_component_NS_equations.h:284
BlockVector< double > FEVector
The vector class used by applications.
Definition: application_data.h:46
bool inertia_in_porous_media
This object indicates whether the inertia term is ON or OFF in porous media.
Definition: incompressible_single_component_NS_equations.h:372
Virtual class used to characterize a generic layer interface.
Definition: base_layer.h:58
bool gravity_in_channels
This object indicates whether the gravity term is ON or OFF in channels.
Definition: incompressible_single_component_NS_equations.h:365
bool gravity_in_porous_media
This object indicates whether the gravity term is ON or OFF in porous media.
Definition: incompressible_single_component_NS_equations.h:386
virtual void initialize(ParameterHandler &param)
Initialize parameters.
bool inertia_in_channels
This object indicates whether the inertia term is ON or OFF in channels.
Definition: incompressible_single_component_NS_equations.h:351
bool normal_velocity_is_suppressed_weakly
Sometimes we implement different types of slip boundary conditions on the curved impermeable walls of...
Definition: incompressible_single_component_NS_equations.h:433
virtual void assemble_cell_matrix(FuelCell::ApplicationCore::MatrixVector &cell_matrices, const typename FuelCell::ApplicationCore::DoFApplication< dim >::CellInfo &cell_info, FuelCellShop::Layer::BaseLayer< dim > *const layer)
Assemble local cell matrix.