Sync public subset from Flux (private)
This commit is contained in:
36
include/core/global_config.h
Normal file
36
include/core/global_config.h
Normal file
@@ -0,0 +1,36 @@
|
||||
#pragma once
|
||||
|
||||
|
||||
namespace core{
|
||||
|
||||
enum class GridKind { Uniform, NonUniform };
|
||||
enum class FDKind { Central, Forward, Backward };
|
||||
enum class BCKind { Dirichlet, Neumann /*, Robin*/ };
|
||||
enum class SolverKind { LU, Inverse /*, CG*/ };
|
||||
|
||||
template <typename T>
|
||||
struct BC {
|
||||
FDKind fd{FDKind::Forward};
|
||||
BCKind kind{BCKind::Dirichlet};
|
||||
T value{T(0)};
|
||||
};
|
||||
|
||||
|
||||
// Global default config holder
|
||||
template <typename T>
|
||||
struct Configs {
|
||||
GridKind grid{GridKind::Uniform};
|
||||
FDKind fd{FDKind::Central};
|
||||
BC<T> left{FDKind::Forward, BCKind::Dirichlet, T(0) };
|
||||
BC<T> right{FDKind::Backward, BCKind::Dirichlet, T(0) };
|
||||
SolverKind solver{SolverKind::LU};
|
||||
|
||||
static Configs& defaults() {
|
||||
static Configs g{}; // process-wide defaults
|
||||
return g;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace core
|
||||
Reference in New Issue
Block a user