runmat-analysis-core 0.5.6

Solver-agnostic analysis model and validation for RunMat
Documentation
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum BoundaryConditionKind {
    Fixed,
    PrescribedDisplacement,
    PrescribedRotation {
        rx: f64,
        ry: f64,
        rz: f64,
    },
    MagneticInsulation,
    VectorPotentialGround,
    AcousticRigidWall,
    AcousticRadiation,
    AcousticImpedance {
        specific_impedance_pa_s_per_m: f64,
    },
    ThermalPrescribedTemperature {
        temperature_k: f64,
    },
    ThermalHeatFlux {
        heat_flux_w_per_m2: f64,
    },
    ThermalConvection {
        ambient_temperature_k: f64,
        coefficient_w_per_m2k: f64,
    },
    CfdInletVelocity {
        velocity_m_per_s: f64,
    },
    CfdOutletPressure {
        pressure_pa: f64,
    },
    CfdNoSlipWall,
    CfdSlipWall,
    CfdSymmetry,
}

#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct BoundaryCondition {
    pub bc_id: String,
    pub region_id: String,
    pub kind: BoundaryConditionKind,
}