runmat_analysis_core/problem/
bc.rs1use 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}