Commit 6353e91b authored by Tomáš Oberhuber's avatar Tomáš Oberhuber
Browse files

Implementing the Navier-Stokes solver.

parent 6357109d
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -47,11 +47,9 @@ __device__ void computeVelocityFieldCuda( const Index size,

template< typename Mesh, typename EulerScheme >
navierStokesSolver< Mesh, EulerScheme > :: navierStokesSolver()
: mu( 0.0 ),
  R( 0.0 ),
: R( 0.0 ),
  T( 0.0 ),
  p_0( 0.0 ),
  gravity( 0.0 )
  p_0( 0.0 )
{

   this -> mesh. setName( "navier-stokes-mesh" );
@@ -136,10 +134,11 @@ bool navierStokesSolver< Mesh, EulerScheme > :: init( const tnlParameterContaine
    * Set-up model coefficients
    */
   this->p_0 = parameters. GetParameter< double >( "p0" );
   this->mu = parameters. GetParameter< double >( "mu");
   this->mu = ;
   this->T = parameters. GetParameter< double >( "T" );
   this->R = parameters. GetParameter< double >( "R" );
   this->gravity = parameters. GetParameter< double >( "gravity" );
   navierStokesScheme.setMu( parameters. GetParameter< double >( "mu") );
   navierStokesScheme.setGravity( parameters. GetParameter< double >( "gravity") );
   if( ! this->boundaryConditions.init( parameters ) )
      return false;

+39 −3
Original line number Diff line number Diff line
@@ -25,7 +25,9 @@ template< typename AdvectionScheme,
          typename BoundaryConditions >
tnlNavierStokes< AdvectionScheme, DiffusionScheme, BoundaryConditions >::tnlNavierStokes()
: advection( 0 ),
  diffusion( 0 )
  diffusion( 0 ),
  mu( 0.0 ),
  gravity( 0.0 )
{
   this->rho.setName( "navier-stokes-rho" );
   this->u1.setName( "navier-stokes-u1");
@@ -79,6 +81,40 @@ void tnlNavierStokes< AdvectionScheme, DiffusionScheme, BoundaryConditions >::se
   this->p.setSize(   this->mesh->getDofs() );
}

template< typename AdvectionScheme,
          typename DiffusionScheme,
          typename BoundaryConditions >
void tnlNavierStokes< AdvectionScheme, DiffusionScheme, BoundaryConditions >::setMu( const RealType& mu )
{
   this->mu = mu;
}

template< typename AdvectionScheme,
          typename DiffusionScheme,
          typename BoundaryConditions >
const typename tnlNavierStokes< AdvectionScheme, DiffusionScheme, BoundaryConditions >::RealType&
   tnlNavierStokes< AdvectionScheme, DiffusionScheme, BoundaryConditions >::getMu() const
{
   return this->mu;
}

template< typename AdvectionScheme,
          typename DiffusionScheme,
          typename BoundaryConditions >
void tnlNavierStokes< AdvectionScheme, DiffusionScheme, BoundaryConditions >::setGravity( const RealType& gravity )
{
   this->gravity = gravity;
}

template< typename AdvectionScheme,
          typename DiffusionScheme,
          typename BoundaryConditions >
const typename tnlNavierStokes< AdvectionScheme, DiffusionScheme, BoundaryConditions >::RealType&
   tnlNavierStokes< AdvectionScheme, DiffusionScheme, BoundaryConditions >::getMu() const
{
   return this->mu;
}

template< typename AdvectionScheme,
          typename DiffusionScheme,
          typename BoundaryConditions >
+10 −0
Original line number Diff line number Diff line
@@ -50,6 +50,14 @@ class tnlNavierStokes

   void setMesh( MeshType& mesh );

   void setMu( const RealType& mu );

   const RealType& getMu() const;

   void setGravity( const RealType& gravity );

   const RealType& getGravity() const;

   VectorType& getRho();

   const VectorType& getRho() const;
@@ -89,6 +97,8 @@ class tnlNavierStokes

   VectorType rho, u1, u2, p;

   RealType mu, gravity;

};

#include <implementation/schemes/navier-stokes/tnlNavierStokes_impl.h>