COOLFluiD  Release kernel
COOLFluiD is a Collaborative Simulation Environment (CSE) focused on complex MultiPhysics simulations.
NavierStokes.hpp
Go to the documentation of this file.
1 // Copyright (C) 2010-2011 von Karman Institute for Fluid Dynamics, Belgium
2 //
3 // This software is distributed under the terms of the
4 // GNU Lesser General Public License version 3 (LGPLv3).
5 // See doc/lgpl.txt and doc/gpl.txt for the license text.
6 
7 #ifndef cf3_UFEM_NavierStokes_hpp
8 #define cf3_UFEM_NavierStokes_hpp
9 
10 #include <boost/accumulators/accumulators.hpp>
11 #include <boost/accumulators/statistics/stats.hpp>
12 #include <boost/accumulators/statistics/max.hpp>
13 
14 #define BOOST_PROTO_MAX_ARITY 11
15 #ifdef BOOST_MPL_LIMIT_METAFUNCTION_ARITY
16  #undef BOOST_MPL_LIMIT_METAFUNCTION_ARITY
17 #endif
18 #define BOOST_MPL_LIMIT_METAFUNCTION_ARITY 11
19 
20 #include <boost/scoped_ptr.hpp>
21 
22 #include "LibUFEM.hpp"
23 #include "LSSActionUnsteady.hpp"
24 #include "NavierStokesPhysics.hpp"
25 #include "SUPG.hpp"
26 
27 namespace cf3 {
28 
29  namespace solver { class ActionDirector; }
30 
31 namespace UFEM {
32 
35 {
36 public: // functions
37 
40  NavierStokes ( const std::string& name );
41 
42  virtual ~NavierStokes();
43 
45  static std::string type_name () { return "NavierStokes"; }
46 
47 private:
49  void trigger_assembly();
50 
52  virtual void on_initial_conditions_set(InitialConditions& initial_conditions);
53 
56  template<typename GenericElementsT, typename SpecializedElementsT>
57  void set_assembly_expression(const std::string& action_name);
58 
60  void set_triag_assembly(const bool use_specialization);
61  void set_quad_assembly();
62  void set_tetra_assembly(const bool use_specialization);
63  void set_hexa_assembly();
64  void set_prism_assembly();
65 
66 
81 
84 
85  // Body force
87 
88 
92 
94 
96  Real tau_ps, tau_su, tau_bulk;
97 
101 
103 };
104 
105 } // UFEM
106 } // cf3
107 
108 
109 #endif // cf3_UFEM_NavierStokes_hpp
Handle< solver::ActionDirector > m_assembly
std::string name(ComponentWrapper &self)
PhysicsConstant Tref
Safe pointer to an object. This is the supported method for referring to components.
Definition: Handle.hpp:39
FieldVariable< 8, VectorField > g
FieldVariable< 3, VectorField > u1
Velocity at time n-1.
PhysicsConstant rho
Access to the physics.
static std::string type_name()
Get the class name.
FieldVariable< 4, VectorField > u2
Velocity at time n-2.
Refers to a value from the physical model.
InitialConditions for UFEM problems.
solver for the unsteady incompressible Navier-Stokes equations
Top-level namespace for coolfluid.
Definition: Action.cpp:18
FieldVariable< 5, VectorField > u3
Velocity at time n-3.
FieldVariable< 7, ScalarField > T
Temperature field.
FieldVariable< 2, VectorField > u_adv
The linearized advection velocity.
FieldVariable< 1, ScalarField > p
The pressure solution field.
Convenience type for a compute_tau operation, grouping the stored operator and its proto counterpart...
Definition: SUPG.hpp:238
FieldVariable< 0, VectorField > u
The velocity solution field.
FieldVariable< 6, ScalarField > nu_eff
Effective viscosity field.
#define UFEM_API
Definition: LibUFEMDemo.hpp:23
Handle< common::Action > m_initial_conditions
Handle< solver::ActionDirector > m_update
Send comments to:
COOLFluiD Web Admin