Newer
Older
/***************************************************************************
simpleProblemSetter.h - description
-------------------
begin : Feb 23, 2013
copyright : (C) 2013 by Tomas Oberhuber
email : tomas.oberhuber@fjfi.cvut.cz
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef SIMPLEPROBLEMTYPESSETTER_H_
#define SIMPLEPROBLEMTYPESSETTER_H_
#include <config/tnlParameterContainer.h>
#include <mesh/tnlGrid.h>
#include "heatEquationSolver.h"
#include <functions/tnlSinWaveFunction.h>
#include <functions/tnlExpBumpFunction.h>
#include <functions/tnlSinBumpsFunction.h>
#include "tnlTimeFunction.h"
#include "tnlDirichletBoundaryConditions.h"
#include <operators/diffusion/tnlLinearDiffusion.h>
#include "tnlNeumannBoundaryConditions.h"
#include "tnlZeroRightHandSide.h"
#include "tnlRightHandSide.h"
template< typename Real,
typename Device,
typename Index,
typename MeshType,
typename ConfigTag,
typename SolverStarter >
class heatEquationSetter
{
public:
typedef TimeFunction< MeshType, TimeFunctionBase::TimeIndependent, Real, Index > TimeIndependent;
typedef TimeFunction< MeshType, TimeFunctionBase::Linear, Real, Index > Linear;
typedef TimeFunction< MeshType, TimeFunctionBase::Quadratic, Real, Index > Quadratic;
typedef TimeFunction< MeshType, TimeFunctionBase::Cosinus, Real, Index > Cosinus;
//typedef typename MeshType::RealType RealType;
typedef Real RealType;
typedef Device DeviceType;
typedef Index IndexType;
typedef tnlStaticVector< MeshType::Dimensions, Real > Vertex;
template< typename TimeFunction >
static bool setAnalyticSpaceFunction (const tnlParameterContainer& parameters);
static bool setTimeFunction (const tnlParameterContainer& parameters);
static bool run( const tnlParameterContainer& parameters );
};
#include "heatEquationSetter_impl.h"
#endif /* HEATEQUATIONSETTER_H_ */