Commit 31fc330e authored by Tomáš Oberhuber's avatar Tomáš Oberhuber
Browse files

Implementing analytic function vector norm.

parent 2dcfeac6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@ template< typename ConfigTag >class eulerConfig
         config.addEntry< double >( "right-velocityX", "This sets a value of right_x velocity." );
         config.addEntry< double >( "right-velocityY", "This sets a value of right_y velocity." );
         config.addEntry< double >( "right-pressure", "This sets a value of right pressure." );
         config.addEntry< double >( "gamma", "This sets a value of gamma constant." );
         config.addEntry< double >( "gamma", "This sets a value of gamma constant.", 1.0 );

         /****
          * Add definition of your solver command line arguments.
+1 −0
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@
#include <TNL/Solvers/PDE/ExplicitUpdater.h>
#include <TNL/Solvers/PDE/LinearSystemAssembler.h>
#include <TNL/Solvers/PDE/BackwardTimeDiscretisation.h>
#include <TNL/Functions/Analytic/VectorNorm.h>

#include "LaxFridrichsContinuity.h"
#include "LaxFridrichsEnergy.h"
+4 −4
Original line number Diff line number Diff line
@@ -8,12 +8,12 @@ tnl-grid-setup --dimensions 2 \
               --size-x 100 \
               --size-y 100 
 
tnl-init --test-function heaviside-of-paraboloid \
tnl-init --test-function heaviside-of-vector-norm \
         --output-file init.tnl \
         --coefficient -1.0 \
         --x-center 0.5 \
         --y-center 0.5 \
         --z-center 0.5 \
         --center-0 0.5 \
         --center-1 0.5 \
         --center-2 0.5 \
         --radius 0.1

tnl-transport-equation --device host \
+3 −1
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
#include <TNL/Operators/NeumannBoundaryConditions.h>
#include <TNL/Operators/Advection/LaxFridrichs.h>
#include <TNL/Functions/Analytic/Constant.h>
#include <TNL/Functions/Analytic/VectorNorm.h>
#include <TNL/Functions/VectorField.h>
#include <TNL/Meshes/Grid.h>
#include "transportEquationProblemEoc.h"
@@ -42,8 +43,9 @@ template< typename ConfigTag >class advectionConfig
      {
         config.addDelimiter( "Transport equation settings:" );
         config.addDelimiter( "Initial condition" );
         config.addEntry< String >( "initial-condition", "Set type of initial condition.", "heaviside-sphere" );
         config.addEntry< String >( "initial-condition", "Set type of initial condition.", "heaviside-vector-norm" );
            config.addEntryEnum< String >( "heaviside-sphere" );
         Functions::Analytic::VectorNorm< 3, double >::configSetup( config, "vector-norm-" );
         config.addEntry     < double >( "x-center", "x-center for paraboloids.", 0.0 );
         config.addEntry     < double >( "y-center", "y-center for paraboloids.", 0.0 );
         config.addEntry     < double >( "z-center", "z-center for paraboloids.", 0.0 );
+3 −3
Original line number Diff line number Diff line
@@ -74,12 +74,12 @@ setup( const MeshPointer& meshPointer,
   if( initialCondition == "heaviside-sphere" )
   {
      typedef Functions::Analytic::Paraboloid< Dimensions, RealType > ParaboloidType;
      typedef Operators::Analytic::Heaviside< ParaboloidType > HeavisideParaboloidType;
      typedef Functions::OperatorFunction< HeavisideParaboloidType, ParaboloidType > InitialConditionType;
      typedef Operators::Analytic::Heaviside< Dimensions, RealType > HeavisideType;
      typedef Functions::OperatorFunction< HeavisideType, ParaboloidType > InitialConditionType;
      String velocityFieldType = parameters.getParameter< String >( "velocity-field" );
      if( velocityFieldType == "constant" )
      {      
         typedef Operators::Analytic::Shift< InitialConditionType > ShiftOperatorType;
         typedef Operators::Analytic::Shift< Dimensions, RealType > ShiftOperatorType;
         typedef Functions::OperatorFunction< ShiftOperatorType, InitialConditionType > ExactSolutionType;
         SharedPointer< ExactSolutionType, Devices::Host > exactSolution;
         if( ! exactSolution->getFunction().setup( parameters, prefix ) )
Loading