STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
engine.pipeline.config_schemas.GraphiteInsertConfig Class Reference
Inheritance diagram for engine.pipeline.config_schemas.GraphiteInsertConfig:
[legend]
Collaboration diagram for engine.pipeline.config_schemas.GraphiteInsertConfig:
[legend]

Static Public Attributes

bool enabled = Field(default=False, description="Enable graphite throat insert")
float material_density = Field(default=1800.0, gt=0, description="Graphite BULK density [kg/m³], from the grade's datasheet (isomolded 1750-1900). Not the 2260 of a single crystal: recession is carbon mass flux over this density")
float heat_of_ablation = Field(default=8.0e6, gt=0, description="Effective heat of ablation [J/kg] (graphite: ~8-12 MJ/kg)")
float thermal_conductivity = Field(default=100.0, gt=0, description="Graphite thermal conductivity [W/(m·K)] (typical: 50-150)")
float specific_heat = Field(default=710.0, gt=0, description="Graphite specific heat [J/(kg·K)]; the insert's heat capacity when specific_heat_model is 'constant'")
Literal specific_heat_model
Optional material_source
float initial_thickness = Field(default=0.005, gt=0, description="Initial graphite insert thickness [m]")
float surface_temperature_limit = Field(default=2500.0, gt=0, description="Maximum surface temperature before failure [K]")
float oxidation_temperature = Field(default=800.0, gt=0, description="Onset temperature for oxidation [K]")
float oxidation_rate = Field(default=1e-6, ge=0, description="Unused by the species model (kept so old configs load)")
Optional activation_energy = Field(default=180e3, gt=0, description="Activation energy for Arrhenius oxidation rate [J/mol]. Typical: 150-200 kJ/mol")
float oxidation_reference_temperature = Field(default=1500.0, gt=0, description="Reference temperature where oxidation_rate is defined [K]. Typical: 1500-1800 K")
float oxidation_reference_pressure = Field(default=1.0e6, gt=0, description="Reference pressure where oxidation_rate is defined [Pa]. Typical: 1 MPa")
Optional recession_multiplier = Field(default=None, gt=0, description="Recession multiplier vs chamber (if None, calculated from flow conditions). Typically 1.3-2.5")
bool sizing_only_mode = Field(default=False, description="If True, suppress recession for sizing iterations. Graphite does recede in reality; use only for design phase.")
bool simplified_graphite_oxidation = Field(default=False, description="If True, use the constant `simplified_oxidation_rate` instead of instead of the physics-based model.")
float simplified_oxidation_rate
float sizing_recession_rate
float axial_half_length_ratio
Optional axial_half_length
float char_layer_conductivity = Field(default=5.0, gt=0, description="Thermal conductivity of protective layer [W/(m·K)]")
float char_layer_thickness = Field(default=0.0005, gt=0, description="Thickness of protective layer [m]")
float coverage_fraction = Field(default=1.0, gt=0, le=1.0, description="Fraction of throat/nozzle with graphite insert")
Optional emissivity = Field(default=None, ge=0, le=1, description="Surface emissivity for radiation (default: 0.8)")
Optional ambient_temperature = Field(default=None, gt=0, description="Ambient temperature for radiation [K] (default: 300 K)")
Optional feedback_fraction_min = Field(default=None, ge=0, le=1, description="Minimum oxidation heat feedback fraction (default: 0.0)")
Optional feedback_fraction_max = Field(default=None, ge=0, le=1, description="Maximum oxidation heat feedback fraction (default: 0.2)")
Optional oxidation_enthalpy = Field(default=None, gt=0, description="Unused: reaction enthalpies are per species (graphite_cooling.CARBON_OXIDISERS)")
Optional ablation_surface_temperature = Field(default=None, gt=0, description="Surface temperature at which thermal ablation pins T_s [K] (default: 3000 K). Above this, T_s is fixed and m_dot_th balances energy.")
float ablation_transition_width = Field(default=200.0, gt=0, description="Temperature width [K] for smooth transition to thermal ablation regime.")
Optional oxidation_pressure_exponent = Field(default=None, ge=0, description="Pressure exponent for oxidation kinetics (default: 0.5)")
Optional oxidation_pre_exponential = Field(default=None, gt=0, description="Pre-exponential factor for Arrhenius oxidation (default: calculated from oxidation_rate)")
Optional mixture_mw = Field(default=None, gt=0, description="Average molecular weight of combustion products [kg/mol] (default: 0.024)")
Optional oxidation_stoichiometry_ratio = Field(default=None, gt=0, description="Moles of C per mole of O2 (1.0 for CO2, 2.0 for CO) (default: 1.0)")
Optional oxygen_mass_fraction
Optional oxygen_mole_fraction
Optional friction_coefficient_override = Field(default=None, gt=0, description="Override skin friction coefficient Cf for blowing parameter calculation.")
Optional reference_diffusivity = Field(default=None, gt=0, description="Reference O2 diffusivity [m²/s] at reference temperature and pressure.")
float reference_diffusivity_temperature = Field(default=1500.0, gt=0, description="Reference temperature [K] for oxygen diffusivity scaling.")
float reference_diffusivity_pressure = Field(default=1.0e6, gt=0, description="Reference pressure [Pa] for oxygen diffusivity scaling.")
SurfaceReactionConfig oxidation_H2O
SurfaceReactionConfig oxidation_CO2
SurfaceReactionConfig oxidation_OH

Detailed Description

Graphite throat insert configuration (separate from chamber ablator)

Definition at line 549 of file config_schemas.py.

Member Data Documentation

◆ ablation_surface_temperature

Optional engine.pipeline.config_schemas.GraphiteInsertConfig.ablation_surface_temperature = Field(default=None, gt=0, description="Surface temperature at which thermal ablation pins T_s [K] (default: 3000 K). Above this, T_s is fixed and m_dot_th balances energy.")
static

Definition at line 617 of file config_schemas.py.

◆ ablation_transition_width

float engine.pipeline.config_schemas.GraphiteInsertConfig.ablation_transition_width = Field(default=200.0, gt=0, description="Temperature width [K] for smooth transition to thermal ablation regime.")
static

Definition at line 618 of file config_schemas.py.

◆ activation_energy

Optional engine.pipeline.config_schemas.GraphiteInsertConfig.activation_energy = Field(default=180e3, gt=0, description="Activation energy for Arrhenius oxidation rate [J/mol]. Typical: 150-200 kJ/mol")
static

Definition at line 572 of file config_schemas.py.

◆ ambient_temperature

Optional engine.pipeline.config_schemas.GraphiteInsertConfig.ambient_temperature = Field(default=None, gt=0, description="Ambient temperature for radiation [K] (default: 300 K)")
static

Definition at line 613 of file config_schemas.py.

◆ axial_half_length

Optional engine.pipeline.config_schemas.GraphiteInsertConfig.axial_half_length
static
Initial value:
= Field(
default=None,
gt=0.0,
description="Explicit graphite insert axial half-length [m]. Overrides axial_half_length_ratio.",
)

Definition at line 604 of file config_schemas.py.

◆ axial_half_length_ratio

float engine.pipeline.config_schemas.GraphiteInsertConfig.axial_half_length_ratio
static
Initial value:
= Field(
default=0.75,
gt=0.0,
description=(
"Graphite insert axial half-length as a multiple of throat DIAMETER, used when "
"`axial_half_length` is unset. 0.75 was hardcoded in three geometry modules."
),
)

Definition at line 596 of file config_schemas.py.

◆ char_layer_conductivity

float engine.pipeline.config_schemas.GraphiteInsertConfig.char_layer_conductivity = Field(default=5.0, gt=0, description="Thermal conductivity of protective layer [W/(m·K)]")
static

Definition at line 609 of file config_schemas.py.

◆ char_layer_thickness

float engine.pipeline.config_schemas.GraphiteInsertConfig.char_layer_thickness = Field(default=0.0005, gt=0, description="Thickness of protective layer [m]")
static

Definition at line 610 of file config_schemas.py.

◆ coverage_fraction

float engine.pipeline.config_schemas.GraphiteInsertConfig.coverage_fraction = Field(default=1.0, gt=0, le=1.0, description="Fraction of throat/nozzle with graphite insert")
static

Definition at line 611 of file config_schemas.py.

◆ emissivity

Optional engine.pipeline.config_schemas.GraphiteInsertConfig.emissivity = Field(default=None, ge=0, le=1, description="Surface emissivity for radiation (default: 0.8)")
static

Definition at line 612 of file config_schemas.py.

◆ enabled

bool engine.pipeline.config_schemas.GraphiteInsertConfig.enabled = Field(default=False, description="Enable graphite throat insert")
static

◆ feedback_fraction_max

Optional engine.pipeline.config_schemas.GraphiteInsertConfig.feedback_fraction_max = Field(default=None, ge=0, le=1, description="Maximum oxidation heat feedback fraction (default: 0.2)")
static

Definition at line 615 of file config_schemas.py.

◆ feedback_fraction_min

Optional engine.pipeline.config_schemas.GraphiteInsertConfig.feedback_fraction_min = Field(default=None, ge=0, le=1, description="Minimum oxidation heat feedback fraction (default: 0.0)")
static

Definition at line 614 of file config_schemas.py.

◆ friction_coefficient_override

Optional engine.pipeline.config_schemas.GraphiteInsertConfig.friction_coefficient_override = Field(default=None, gt=0, description="Override skin friction coefficient Cf for blowing parameter calculation.")
static

Definition at line 635 of file config_schemas.py.

◆ heat_of_ablation

float engine.pipeline.config_schemas.GraphiteInsertConfig.heat_of_ablation = Field(default=8.0e6, gt=0, description="Effective heat of ablation [J/kg] (graphite: ~8-12 MJ/kg)")
static

Definition at line 553 of file config_schemas.py.

◆ initial_thickness

float engine.pipeline.config_schemas.GraphiteInsertConfig.initial_thickness = Field(default=0.005, gt=0, description="Initial graphite insert thickness [m]")
static

Definition at line 568 of file config_schemas.py.

◆ material_density

float engine.pipeline.config_schemas.GraphiteInsertConfig.material_density = Field(default=1800.0, gt=0, description="Graphite BULK density [kg/m³], from the grade's datasheet (isomolded 1750-1900). Not the 2260 of a single crystal: recession is carbon mass flux over this density")
static

Definition at line 552 of file config_schemas.py.

◆ material_source

Optional engine.pipeline.config_schemas.GraphiteInsertConfig.material_source
static
Initial value:
= Field(
default=None,
description="Where the insert's material numbers came from: grade, manufacturer, datasheet.",
)

Definition at line 564 of file config_schemas.py.

◆ mixture_mw

Optional engine.pipeline.config_schemas.GraphiteInsertConfig.mixture_mw = Field(default=None, gt=0, description="Average molecular weight of combustion products [kg/mol] (default: 0.024)")
static

Definition at line 621 of file config_schemas.py.

◆ oxidation_CO2

SurfaceReactionConfig engine.pipeline.config_schemas.GraphiteInsertConfig.oxidation_CO2
static
Initial value:
= Field(
default_factory=lambda: SurfaceReactionConfig(A=9.0e3, E=285.0e3, n=0.5),
description="C + CO2 -> 2 CO surface rate (Bradley 1984 via Thakre & Yang 2008)")

Definition at line 644 of file config_schemas.py.

◆ oxidation_enthalpy

Optional engine.pipeline.config_schemas.GraphiteInsertConfig.oxidation_enthalpy = Field(default=None, gt=0, description="Unused: reaction enthalpies are per species (graphite_cooling.CARBON_OXIDISERS)")
static

Definition at line 616 of file config_schemas.py.

◆ oxidation_H2O

SurfaceReactionConfig engine.pipeline.config_schemas.GraphiteInsertConfig.oxidation_H2O
static
Initial value:
= Field(
default_factory=lambda: SurfaceReactionConfig(A=4.8e5, E=288.0e3, n=0.5),
description="C + H2O -> CO + H2 surface rate (Bradley 1984 via Thakre & Yang 2008)")

Definition at line 641 of file config_schemas.py.

◆ oxidation_OH

SurfaceReactionConfig engine.pipeline.config_schemas.GraphiteInsertConfig.oxidation_OH
static
Initial value:
= Field(
default_factory=lambda: SurfaceReactionConfig(A=361.0, E=0.0, n=1.0, T_exponent=-0.5),
description="C + OH -> CO + H surface rate (Bradley 1984 via Thakre & Yang 2008)")

Definition at line 647 of file config_schemas.py.

◆ oxidation_pre_exponential

Optional engine.pipeline.config_schemas.GraphiteInsertConfig.oxidation_pre_exponential = Field(default=None, gt=0, description="Pre-exponential factor for Arrhenius oxidation (default: calculated from oxidation_rate)")
static

Definition at line 620 of file config_schemas.py.

◆ oxidation_pressure_exponent

Optional engine.pipeline.config_schemas.GraphiteInsertConfig.oxidation_pressure_exponent = Field(default=None, ge=0, description="Pressure exponent for oxidation kinetics (default: 0.5)")
static

Definition at line 619 of file config_schemas.py.

◆ oxidation_rate

float engine.pipeline.config_schemas.GraphiteInsertConfig.oxidation_rate = Field(default=1e-6, ge=0, description="Unused by the species model (kept so old configs load)")
static

Definition at line 571 of file config_schemas.py.

◆ oxidation_reference_pressure

float engine.pipeline.config_schemas.GraphiteInsertConfig.oxidation_reference_pressure = Field(default=1.0e6, gt=0, description="Reference pressure where oxidation_rate is defined [Pa]. Typical: 1 MPa")
static

Definition at line 574 of file config_schemas.py.

◆ oxidation_reference_temperature

float engine.pipeline.config_schemas.GraphiteInsertConfig.oxidation_reference_temperature = Field(default=1500.0, gt=0, description="Reference temperature where oxidation_rate is defined [K]. Typical: 1500-1800 K")
static

Definition at line 573 of file config_schemas.py.

◆ oxidation_stoichiometry_ratio

Optional engine.pipeline.config_schemas.GraphiteInsertConfig.oxidation_stoichiometry_ratio = Field(default=None, gt=0, description="Moles of C per mole of O2 (1.0 for CO2, 2.0 for CO) (default: 1.0)")
static

Definition at line 622 of file config_schemas.py.

◆ oxidation_temperature

float engine.pipeline.config_schemas.GraphiteInsertConfig.oxidation_temperature = Field(default=800.0, gt=0, description="Onset temperature for oxidation [K]")
static

Definition at line 570 of file config_schemas.py.

◆ oxygen_mass_fraction

Optional engine.pipeline.config_schemas.GraphiteInsertConfig.oxygen_mass_fraction
static
Initial value:
= Field(
default=None,
ge=0,
le=1,
description="Unused: the throat composition comes from CEA.",
)

Definition at line 623 of file config_schemas.py.

◆ oxygen_mole_fraction

Optional engine.pipeline.config_schemas.GraphiteInsertConfig.oxygen_mole_fraction
static
Initial value:
= Field(
default=None,
ge=0,
le=1,
description="Unused: the throat composition comes from CEA.",
)

Definition at line 629 of file config_schemas.py.

◆ recession_multiplier

Optional engine.pipeline.config_schemas.GraphiteInsertConfig.recession_multiplier = Field(default=None, gt=0, description="Recession multiplier vs chamber (if None, calculated from flow conditions). Typically 1.3-2.5")
static

Definition at line 575 of file config_schemas.py.

◆ reference_diffusivity

Optional engine.pipeline.config_schemas.GraphiteInsertConfig.reference_diffusivity = Field(default=None, gt=0, description="Reference O2 diffusivity [m²/s] at reference temperature and pressure.")
static

Definition at line 636 of file config_schemas.py.

◆ reference_diffusivity_pressure

float engine.pipeline.config_schemas.GraphiteInsertConfig.reference_diffusivity_pressure = Field(default=1.0e6, gt=0, description="Reference pressure [Pa] for oxygen diffusivity scaling.")
static

Definition at line 638 of file config_schemas.py.

◆ reference_diffusivity_temperature

float engine.pipeline.config_schemas.GraphiteInsertConfig.reference_diffusivity_temperature = Field(default=1500.0, gt=0, description="Reference temperature [K] for oxygen diffusivity scaling.")
static

Definition at line 637 of file config_schemas.py.

◆ simplified_graphite_oxidation

bool engine.pipeline.config_schemas.GraphiteInsertConfig.simplified_graphite_oxidation = Field(default=False, description="If True, use the constant `simplified_oxidation_rate` instead of instead of the physics-based model.")
static

Definition at line 577 of file config_schemas.py.

◆ simplified_oxidation_rate

float engine.pipeline.config_schemas.GraphiteInsertConfig.simplified_oxidation_rate
static
Initial value:
= Field(
default=1.0e-5,
ge=0.0,
description=(
"Radial recession rate used when `simplified_graphite_oxidation` is true [m/s]. "
"Default 1e-5 m/s = 0.01 mm/s, which was hardcoded. Measure your own stock and set "
"it here rather than inheriting a number from someone else's graphite."
),
)

Definition at line 578 of file config_schemas.py.

◆ sizing_only_mode

bool engine.pipeline.config_schemas.GraphiteInsertConfig.sizing_only_mode = Field(default=False, description="If True, suppress recession for sizing iterations. Graphite does recede in reality; use only for design phase.")
static

Definition at line 576 of file config_schemas.py.

◆ sizing_recession_rate

float engine.pipeline.config_schemas.GraphiteInsertConfig.sizing_recession_rate
static
Initial value:
= Field(
default=1.0e-8,
ge=0.0,
description=(
"Recession rate assumed while SIZING the chamber [m/s]. Default 1e-8 is effectively "
"zero -- the sizing pass has always treated graphite as non-eroding. Raise it if your "
"insert measurably recedes over a burn and you want the bore sized for it."
),
)

Definition at line 587 of file config_schemas.py.

◆ specific_heat

float engine.pipeline.config_schemas.GraphiteInsertConfig.specific_heat = Field(default=710.0, gt=0, description="Graphite specific heat [J/(kg·K)]; the insert's heat capacity when specific_heat_model is 'constant'")
static

Definition at line 555 of file config_schemas.py.

◆ specific_heat_model

Literal engine.pipeline.config_schemas.GraphiteInsertConfig.specific_heat_model
static
Initial value:
= Field(
default="constant",
description=(
"How the insert's specific heat follows temperature (engine/pipeline/thermal/graphite_properties.py). "
"'constant' uses specific_heat at every temperature; 'butland_maddison_1973' is graphite's published "
"cp(T), 0.71 kJ/(kg K) at 300 K rising to 2.0 at 2000 K, the same for every polygranular grade."
),
)

Definition at line 556 of file config_schemas.py.

◆ surface_temperature_limit

float engine.pipeline.config_schemas.GraphiteInsertConfig.surface_temperature_limit = Field(default=2500.0, gt=0, description="Maximum surface temperature before failure [K]")
static

Definition at line 569 of file config_schemas.py.

◆ thermal_conductivity

float engine.pipeline.config_schemas.GraphiteInsertConfig.thermal_conductivity = Field(default=100.0, gt=0, description="Graphite thermal conductivity [W/(m·K)] (typical: 50-150)")
static

Definition at line 554 of file config_schemas.py.


The documentation for this class was generated from the following file: