Make GAMMA into a static

This commit is contained in:
2021-06-30 18:20:44 +02:00
parent 94e49ff9b5
commit 3ceeeb8ca1
7 changed files with 40 additions and 23 deletions

View File

@@ -250,8 +250,8 @@ fn append_default_context() {
pub fn default_context() -> HashMapContext {
let mut context = math_consts_context! {}.unwrap();
context.set_value("GAMMA".into(), GAMMA.into()).unwrap();
let gamma = *GAMMA.get().expect("GAMMA is not defined");
context.set_value("GAMMA".into(), gamma.into()).unwrap();
context
.set_function(

View File

@@ -283,6 +283,10 @@ pub enum BoundaryConditions {
NotNeeded,
}
fn default_gamma() -> Float {
1.4
}
#[derive(Clone, Debug, Serialize, Deserialize)]
/// Input configuration (json)
pub struct Configuration {
@@ -291,6 +295,8 @@ pub struct Configuration {
pub initial_conditions: InputInitialConditions,
#[serde(default)]
pub boundary_conditions: InputBoundaryConditions,
#[serde(default = "default_gamma")]
pub gamma: Float,
}
pub struct RuntimeConfiguration {
@@ -305,6 +311,8 @@ pub struct RuntimeConfiguration {
impl Configuration {
pub fn into_runtime(mut self) -> RuntimeConfiguration {
let gamma = self.gamma;
let _ = euler::GAMMA.set(gamma);
let default = self.grids.shift_remove("default").unwrap_or_default();
let names = self.grids.keys().cloned().collect();