Skip to main content

runmat_analysis_core/problem/
bc.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
4#[serde(rename_all = "snake_case")]
5pub enum BoundaryConditionKind {
6    Fixed,
7    PrescribedDisplacement,
8    PrescribedRotation {
9        rx: f64,
10        ry: f64,
11        rz: f64,
12    },
13    MagneticInsulation,
14    VectorPotentialGround,
15    AcousticRigidWall,
16    AcousticRadiation,
17    AcousticImpedance {
18        specific_impedance_pa_s_per_m: f64,
19    },
20    ThermalPrescribedTemperature {
21        temperature_k: f64,
22    },
23    ThermalHeatFlux {
24        heat_flux_w_per_m2: f64,
25    },
26    ThermalConvection {
27        ambient_temperature_k: f64,
28        coefficient_w_per_m2k: f64,
29    },
30    CfdInletVelocity {
31        velocity_m_per_s: f64,
32    },
33    CfdOutletPressure {
34        pressure_pa: f64,
35    },
36    CfdNoSlipWall,
37    CfdSlipWall,
38    CfdSymmetry,
39}
40
41#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
42pub struct BoundaryCondition {
43    pub bc_id: String,
44    pub region_id: String,
45    pub kind: BoundaryConditionKind,
46}