Skip to content
Snippets Groups Projects
Commit 636de00b authored by Robert K's avatar Robert K Committed by Tobias Malkmus
Browse files

[cleanup] Allow Double to be used as RangeFieldType.

parent 2b3d4fab
No related branches found
No related tags found
No related merge requests found
...@@ -30,17 +30,22 @@ namespace Fem ...@@ -30,17 +30,22 @@ namespace Fem
* *
* \ingroup EulerProblems * \ingroup EulerProblems
*/ */
//typedef double NsRangeField ;
//typedef float NsRangeField ;
typedef Double EulerRangeField ;
template <class GridType> template <class GridType>
class ProblemBase : class ProblemBase :
public EvolutionProblemInterface< public EvolutionProblemInterface<
Dune::Fem::FunctionSpace< typename GridType::ctype, Dune::Fem::FunctionSpace< typename GridType::ctype,
typename GridType::ctype, EulerRangeField,
GridType::dimensionworld, GridType::dimensionworld+2>, GridType::dimensionworld, GridType::dimensionworld+2>,
false > false >
{ {
typedef EvolutionProblemInterface< typedef EvolutionProblemInterface<
Dune::Fem::FunctionSpace< typename GridType::ctype, Dune::Fem::FunctionSpace< typename GridType::ctype,
typename GridType::ctype, EulerRangeField,
GridType::dimensionworld, GridType::dimensionworld+2>, GridType::dimensionworld, GridType::dimensionworld+2>,
false > BaseType ; false > BaseType ;
...@@ -394,14 +399,31 @@ namespace Fem ...@@ -394,14 +399,31 @@ namespace Fem
kinEnerg *= 0.5*res[0]; kinEnerg *= 0.5*res[0];
res[energ] = res[energ]/(gamma()-1.0)+kinEnerg; res[energ] = res[energ]/(gamma()-1.0)+kinEnerg;
} }
void chorin(double t,double x, void chorin(double t,double x,
double& q_erg,double& u_erg,double& p_erg) const double& q_erg,double& u_erg,double& p_erg) const
{ {
EULERCHORIN:: EULERCHORIN::
lsg(x,t,&q_erg,&u_erg,&p_erg, lsg(x,t,&q_erg,&u_erg,&p_erg,
Ulr[0],Ulr[3],Ulr[1],Ulr[4],Ulr[2],Ulr[5], Ulr[0],Ulr[3],Ulr[1],Ulr[4],Ulr[2],Ulr[5],
gamma()); double(gamma()));
}
template <class Field>
void chorin(double t, double x,
Field& pq_erg, Field& pu_erg, Field& pp_erg) const
{
double q_erg = double(pq_erg);
double u_erg = double(pu_erg);
double p_erg = double(pp_erg);
chorin( t, x, q_erg, u_erg, p_erg );
pq_erg = q_erg;
pu_erg = u_erg;
pp_erg = p_erg;
} }
void printmyInfo(std::string filename) void printmyInfo(std::string filename)
{ {
std::ostringstream filestream; std::ostringstream filestream;
...@@ -520,6 +542,21 @@ namespace Fem ...@@ -520,6 +542,21 @@ namespace Fem
EULERCHORIN::lsg( x, t, &q_erg, &u_erg, &p_erg, Ulr[ 0 ], Ulr[ 3 ], Ulr[ 1 ], Ulr[ 4 ], Ulr[ 2 ], Ulr[ 5 ], gamma() ); EULERCHORIN::lsg( x, t, &q_erg, &u_erg, &p_erg, Ulr[ 0 ], Ulr[ 3 ], Ulr[ 1 ], Ulr[ 4 ], Ulr[ 2 ], Ulr[ 5 ], gamma() );
} }
template <class Field>
void chorin(double t, double x,
Field& pq_erg, Field& pu_erg, Field& pp_erg) const
{
double q_erg = double(pq_erg);
double u_erg = double(pu_erg);
double p_erg = double(pp_erg);
chorin( t, x, q_erg, u_erg, p_erg );
pq_erg = q_erg;
pu_erg = u_erg;
pp_erg = p_erg;
}
void printmyInfo( const std::string &filename ) void printmyInfo( const std::string &filename )
{ {
std::ostringstream filestream; std::ostringstream filestream;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment