Skip to content
Snippets Groups Projects
Commit 1225a4e5 authored by Robert K's avatar Robert K
Browse files

[cleanup] dual --> local, average --> br1.

parent 49f43128
No related branches found
No related tags found
No related merge requests found
......@@ -60,9 +60,10 @@ namespace Fem
AdvectionLimiter::Enum::unlimited,
Matrix::Enum::matrixfree,
AdvectionFlux::Enum::upwind,
PrimalDiffusionFlux::Enum::cdg2,
DualDiffusionFlux::Enum::average,
Formulation::Enum::dual > AC;
PrimalDiffusionFlux::Enum::cdg2 > AC;
// Local DG approach
// LocalDiffusionFlux::Enum::general,
// Formulation::Enum::local > AC;
typedef typename AC::GridType GridType;
typedef typename AC::GridParts HostGridPartType;
......
......@@ -45,5 +45,6 @@ fem.io.macroGridFile_3d: ../../grids/unitcube3.dgf
# SOLVER
#-------
dgdiffusionflux.upwind: -1 -0.001
dgdiffusionflux.method: LDG
femdg.stepper.maxtimestep: 0.5
paramfile: ../../parameter/paramSolver
......@@ -215,7 +215,7 @@ namespace Fem
enum class Enum
{
primal,
dual
local
};
}
......@@ -321,7 +321,7 @@ namespace Fem
};
template< class OperatorTraits >
class AdvectionDiffusionOperatorSelector< OperatorTraits, Formulation::Enum::dual, AdvectionLimiter::Enum::unlimited >
class AdvectionDiffusionOperatorSelector< OperatorTraits, Formulation::Enum::local, AdvectionLimiter::Enum::unlimited >
{
static const int advection = OperatorTraits::ModelType::hasAdvection;
static const int diffusion = OperatorTraits::ModelType::hasDiffusion;
......@@ -338,7 +338,7 @@ namespace Fem
};
template< class OperatorTraits >
class AdvectionDiffusionOperatorSelector< OperatorTraits, Formulation::Enum::dual, AdvectionLimiter::Enum::limited >
class AdvectionDiffusionOperatorSelector< OperatorTraits, Formulation::Enum::local, AdvectionLimiter::Enum::limited >
{
static const int advection = OperatorTraits::ModelType::hasAdvection;
static const int diffusion = OperatorTraits::ModelType::hasDiffusion;
......@@ -573,19 +573,19 @@ namespace Fem
};
template< class ModelImp, class DiscreteFunctionSpaceImp,
PrimalDiffusionFlux::Enum diffFluxId, DualDiffusionFlux::Enum dualDiffFluxId, Formulation::Enum form >
PrimalDiffusionFlux::Enum diffFluxId, LocalDiffusionFlux::Enum localDiffFluxId, Formulation::Enum form >
struct DiffusionFluxSelector;
template< class ModelImp, class DiscreteFunctionSpaceImp, PrimalDiffusionFlux::Enum diffFluxId, DualDiffusionFlux::Enum dualDiffFluxId >
struct DiffusionFluxSelector< ModelImp, DiscreteFunctionSpaceImp, diffFluxId, dualDiffFluxId, Formulation::Enum::primal >
template< class ModelImp, class DiscreteFunctionSpaceImp, PrimalDiffusionFlux::Enum diffFluxId, LocalDiffusionFlux::Enum localDiffFluxId >
struct DiffusionFluxSelector< ModelImp, DiscreteFunctionSpaceImp, diffFluxId, localDiffFluxId, Formulation::Enum::primal >
{
typedef DGPrimalDiffusionFlux< DiscreteFunctionSpaceImp, ModelImp, diffFluxId > type;
};
template< class ModelImp, class DiscreteFunctionSpaceImp, PrimalDiffusionFlux::Enum diffFluxId, DualDiffusionFlux::Enum dualDiffFluxId >
struct DiffusionFluxSelector< ModelImp, DiscreteFunctionSpaceImp, diffFluxId, dualDiffFluxId, Formulation::Enum::dual >
template< class ModelImp, class DiscreteFunctionSpaceImp, PrimalDiffusionFlux::Enum diffFluxId, LocalDiffusionFlux::Enum localDiffFluxId >
struct DiffusionFluxSelector< ModelImp, DiscreteFunctionSpaceImp, diffFluxId, localDiffFluxId, Formulation::Enum::local >
{
typedef DGDualDiffusionFlux< DiscreteFunctionSpaceImp, ModelImp, dualDiffFluxId > type;
typedef DGLocalDiffusionFlux< DiscreteFunctionSpaceImp, ModelImp, localDiffFluxId > type;
};
}
......
......@@ -37,7 +37,7 @@ namespace Fem
Matrix::Enum matrixId,
AdvectionFlux::Enum advFluxId,
PrimalDiffusionFlux::Enum diffFluxId,
DualDiffusionFlux::Enum dualDiffFluxId = DualDiffusionFlux::Enum::average,
LocalDiffusionFlux::Enum localDiffFluxId = LocalDiffusionFlux::Enum::general,
Formulation::Enum formId = Formulation::Enum::primal >
class AlgorithmConfigurator
{
......@@ -66,7 +66,7 @@ namespace Fem
template< class ModelImp, AdvectionFlux::Enum id = advFluxId >
using AdvectionFluxes = DGAdvectionFlux< ModelImp, id >;
template< class ModelImp, class DFSpace, PrimalDiffusionFlux::Enum id = diffFluxId, DualDiffusionFlux::Enum did = dualDiffFluxId >
template< class ModelImp, class DFSpace, PrimalDiffusionFlux::Enum id = diffFluxId, LocalDiffusionFlux::Enum did = localDiffFluxId >
using DiffusionFluxes = typename DiffusionFluxSelector< ModelImp, DFSpace, id, did, formId >::type;
template< class DomainDFSpace,
......@@ -75,12 +75,12 @@ namespace Fem
class AnalyticalTraitsImp,
AdvectionFlux::Enum advId = advFluxId,
PrimalDiffusionFlux::Enum diffId = diffFluxId,
DualDiffusionFlux::Enum dualDiffId = dualDiffFluxId >
LocalDiffusionFlux::Enum localDiffId = localDiffFluxId >
using DefaultAssembTraits = DefaultAssemblerTraits< polOrd,
AnalyticalTraitsImp,
typename SolverSelector< solverId, false, DomainDFSpace, RangeDFSpace >::LinearOperatorType,
AdvectionFluxes< typename AnalyticalTraitsImp::ModelType, advId >,
DiffusionFluxes< typename AnalyticalTraitsImp::ModelType, DomainDFSpace, diffId, dualDiffId >,
DiffusionFluxes< typename AnalyticalTraitsImp::ModelType, DomainDFSpace, diffId, localDiffId >,
DiscreteFunctions< DomainDFSpace >,
DiscreteFunctions< RangeDFSpace > >;
template< class DomainDFSpace,
......@@ -90,12 +90,12 @@ namespace Fem
class AdaptationIndicatorFunctionSpaceImp = typename DomainDFSpace::FunctionSpaceType,
AdvectionFlux::Enum advId = advFluxId,
PrimalDiffusionFlux::Enum diffId = diffFluxId,
DualDiffusionFlux::Enum dualDiffId = dualDiffFluxId >
LocalDiffusionFlux::Enum localDiffId = localDiffFluxId >
using DefaultOpTraits = DefaultOperatorTraits< polOrd,
AnalyticalTraitsImp,
DiscreteFunctions< DomainDFSpace >,
AdvectionFluxes< typename AnalyticalTraitsImp::ModelType, advId >,
DiffusionFluxes< typename AnalyticalTraitsImp::ModelType, DomainDFSpace, diffId, dualDiffId >,
DiffusionFluxes< typename AnalyticalTraitsImp::ModelType, DomainDFSpace, diffId, localDiffId >,
ExtraParameterTupleImp,
AdaptationIndicatorFunctionSpaceImp >;
......
......@@ -220,15 +220,15 @@ namespace Fem
template <class DiscreteFunctionSpaceImp,
class Model,
DualDiffusionFlux::Enum id >
class DGDualDiffusionFlux;
LocalDiffusionFlux::Enum id >
class DGLocalDiffusionFlux;
template <class DiscreteFunctionSpaceImp,
class Model>
class DGDualDiffusionFlux< DiscreteFunctionSpaceImp, Model, DualDiffusionFlux::Enum::average >
: public LDGDiffusionFluxImpl< DiscreteFunctionSpaceImp, Model, DGDualDiffusionFluxParameters >
class DGLocalDiffusionFlux< DiscreteFunctionSpaceImp, Model, LocalDiffusionFlux::Enum::br1 >
: public LDGDiffusionFluxImpl< DiscreteFunctionSpaceImp, Model, DGLocalDiffusionFluxParameters >
{
typedef LDGDiffusionFluxImpl< DiscreteFunctionSpaceImp, Model, DGDualDiffusionFluxParameters >
typedef LDGDiffusionFluxImpl< DiscreteFunctionSpaceImp, Model, DGLocalDiffusionFluxParameters >
BaseType;
public:
......@@ -239,20 +239,20 @@ namespace Fem
/**
* \brief constructor reading parameters
*/
DGDualDiffusionFlux( GridPartType& gridPart,
DGLocalDiffusionFlux( GridPartType& gridPart,
const Model& model,
const ParameterType& parameters = ParameterType() )
: BaseType( gridPart, model, parameters, DualDiffusionFlux::Enum::average )
: BaseType( gridPart, model, parameters, LocalDiffusionFlux::Enum::br1 )
{
}
};
template <class DiscreteFunctionSpaceImp,
class Model>
class DGDualDiffusionFlux< DiscreteFunctionSpaceImp, Model, DualDiffusionFlux::Enum::ldg >
: public LDGDiffusionFluxImpl< DiscreteFunctionSpaceImp, Model, DGDualDiffusionFluxParameters >
class DGLocalDiffusionFlux< DiscreteFunctionSpaceImp, Model, LocalDiffusionFlux::Enum::ldg >
: public LDGDiffusionFluxImpl< DiscreteFunctionSpaceImp, Model, DGLocalDiffusionFluxParameters >
{
typedef LDGDiffusionFluxImpl< DiscreteFunctionSpaceImp, Model, DGDualDiffusionFluxParameters >
typedef LDGDiffusionFluxImpl< DiscreteFunctionSpaceImp, Model, DGLocalDiffusionFluxParameters >
BaseType;
public:
......@@ -263,20 +263,20 @@ namespace Fem
/**
* \brief constructor reading parameters
*/
DGDualDiffusionFlux( GridPartType& gridPart,
DGLocalDiffusionFlux( GridPartType& gridPart,
const Model& model,
const ParameterType& parameters = ParameterType() )
: BaseType( gridPart, model, parameters, DualDiffusionFlux::Enum::ldg )
: BaseType( gridPart, model, parameters, LocalDiffusionFlux::Enum::ldg )
{
}
};
template <class DiscreteFunctionSpaceImp,
class Model>
class DGDualDiffusionFlux< DiscreteFunctionSpaceImp, Model, DualDiffusionFlux::Enum::general >
: public LDGDiffusionFluxImpl< DiscreteFunctionSpaceImp, Model, DGDualDiffusionFluxParameters >
class DGLocalDiffusionFlux< DiscreteFunctionSpaceImp, Model, LocalDiffusionFlux::Enum::general >
: public LDGDiffusionFluxImpl< DiscreteFunctionSpaceImp, Model, DGLocalDiffusionFluxParameters >
{
typedef LDGDiffusionFluxImpl< DiscreteFunctionSpaceImp, Model, DGDualDiffusionFluxParameters >
typedef LDGDiffusionFluxImpl< DiscreteFunctionSpaceImp, Model, DGLocalDiffusionFluxParameters >
BaseType;
public:
......@@ -287,10 +287,10 @@ namespace Fem
/**
* \brief constructor reading parameters
*/
DGDualDiffusionFlux( GridPartType& gridPart,
DGLocalDiffusionFlux( GridPartType& gridPart,
const Model& model,
const ParameterType& parameters = ParameterType() )
: BaseType( gridPart, model, parameters, DualDiffusionFlux::Enum::general )
: BaseType( gridPart, model, parameters, LocalDiffusionFlux::Enum::general )
{
}
};
......
......@@ -47,7 +47,7 @@ namespace Fem
}
namespace DualDiffusionFlux
namespace LocalDiffusionFlux
{
/**
* \brief Enum of all known local DG diffusion flux implementations.
......@@ -57,15 +57,15 @@ namespace Fem
enum class Enum
{
//! Bassi-Rebay flux.
average,
br1,
//! Local DG flux.
ldg,
//! general flux: Parameter selection is done via parameter file!
general,
general
};
//! Contains all known enums for dual diffusion fluxes which can be chosen via parameter file.
const Enum _enums[] = { Enum::average, Enum::ldg };
const Enum _enums[] = { Enum::br1, Enum::ldg };
//! Contains all known names of dual diffusion fluxes which can be chosen via parameter file.
const std::string _strings[] = { "BR1", "LDG" };
//! Number of known primal diffusion fluxes which can be chosen via parameter file.
......@@ -210,18 +210,18 @@ namespace Fem
*
* \ingroup ParameterClass
*/
class DGDualDiffusionFluxParameters
: public Fem::LocalParameter< DGDualDiffusionFluxParameters, DGDualDiffusionFluxParameters >
class DGLocalDiffusionFluxParameters
: public Fem::LocalParameter< DGLocalDiffusionFluxParameters, DGLocalDiffusionFluxParameters >
{
public:
typedef DualDiffusionFlux::Enum IdEnum;
typedef LocalDiffusionFlux::Enum IdEnum;
/**
* \brief Constructor
*
* \param[in] keyPrefix key prefix for parameter file.
*/
DGDualDiffusionFluxParameters( const std::string keyPrefix = "dgdiffusionflux." )
DGLocalDiffusionFluxParameters( const std::string keyPrefix = "dgdiffusionflux." )
: keyPrefix_( keyPrefix )
{}
......@@ -233,9 +233,9 @@ namespace Fem
*/
static std::string methodNames( const IdEnum& mthd )
{
for( int i = 0; i < DualDiffusionFlux::_size; i++)
if( DualDiffusionFlux::_enums[i] == mthd )
return DualDiffusionFlux::_strings[i];
for( int i = 0; i < LocalDiffusionFlux::_size; i++)
if( LocalDiffusionFlux::_enums[i] == mthd )
return LocalDiffusionFlux::_strings[i];
assert( false );
return "invalid diffusion flux";
}
......@@ -245,8 +245,8 @@ namespace Fem
*/
virtual IdEnum getMethod() const
{
const int i = Fem::Parameter::getEnum( keyPrefix_ + "method", DualDiffusionFlux::_strings );
return DualDiffusionFlux::_enums[i];
const int i = Fem::Parameter::getEnum( keyPrefix_ + "method", LocalDiffusionFlux::_strings );
return LocalDiffusionFlux::_enums[i];
}
//! todo please doc me
......
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