Meco Solids: Difference between revisions
(Created page with "= Meco Solids = Solid components model heat transfer through solid materials in rocket engine systems. They are essential for thermal analysis of combustion chambers, nozzles, and cooling systems. == Overview == The Meco Rocket Simulator supports 1 solid component type: {| class="wikitable" |- ! Component Type !! Purpose !! Key Features !! Applications |- | Solid || Heat transfer modeling || Multi-layer thermal analysis || Chamber walls, cooling channels, nozzles |}...") |
No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 19: | Line 19: | ||
* '''Type:''' <code>Solid</code> | * '''Type:''' <code>Solid</code> | ||
* '''Purpose:''' Heat transfer solid for modeling chamber walls, cooling channels, and thermal barriers | * '''Purpose:''' Heat transfer solid for modeling chamber walls, cooling channels, and thermal barriers | ||
* '''Modeling:''' | * '''Modeling:''' One-dimensional transient heat conduction with finite difference discretization | ||
* '''Implementation:''' Uses implicit finite difference scheme with temperature-dependent boundary conditions | |||
=== Parameters === | === Parameters === | ||
Line 30: | Line 31: | ||
* '''Material Properties:''' | * '''Material Properties:''' | ||
** <code>materialName</code> - Material type identifier (string) | ** <code>materialName</code> - Material type identifier (string, must exist in materials.npz database) | ||
==== Thermal Parameters ==== | ==== Thermal Parameters ==== | ||
* '''Wall Properties:''' | * '''Wall Properties:''' | ||
** <code>wallDelta</code> - Wall thickness in meters (double) | ** <code>wallDelta</code> - Wall thickness in meters (double) | ||
** <code>wallDeltaSubdivisions</code> - Number of subdivisions through thickness (size_t) | ** <code>wallDeltaSubdivisions</code> - Number of finite difference subdivisions through thickness (size_t) | ||
** <code>wallInitialT</code> - Initial temperature in Kelvin (double) | ** <code>wallInitialT</code> - Initial temperature in Kelvin (double) | ||
* '''Geometric Parameters:''' | * '''Geometric Parameters:''' | ||
** <code>chamberCriticalRadius</code> - Critical radius in meters (double) | ** <code>chamberCriticalRadius</code> - Critical throat radius in meters (double, converted to diameter internally) | ||
** <code>chamberThroatCurvatureRadius</code> - Throat curvature radius | ** <code>chamberThroatCurvatureRadius</code> - Throat curvature radius for Bartz correlation (double) | ||
** <code>coolingChannelLandX</code> - Cooling channel land dimension in meters (double) | ** <code>coolingChannelLandX</code> - Cooling channel land dimension in meters (double) | ||
Line 46: | Line 47: | ||
==== Material Selection ==== | ==== Material Selection ==== | ||
Common rocket engine materials: | Common rocket engine materials (from materials.npz database): | ||
* '''Copper:''' Excellent thermal conductivity, regenerative cooling | * '''Copper:''' Excellent thermal conductivity, regenerative cooling | ||
* '''Stainless Steel:''' Good strength, moderate thermal properties | * '''Stainless Steel:''' Good strength, moderate thermal properties | ||
* '''Inconel:''' High-temperature strength, gas generator applications | * '''Inconel:''' High-temperature strength, gas generator applications | ||
* ''' | * '''NARloyZ:''' Copper alloy (k=316 W/m·K @533K), specialized rocket applications | ||
'''Note:''' Material properties (thermal conductivity k, density ρ, specific heat cp) are loaded from a preprocessed materials.npz database and interpolated as functions of temperature. | |||
==== Thermal Mesh Resolution ==== | ==== Thermal Mesh Resolution ==== | ||
Line 67: | Line 69: | ||
<pre> | <pre> | ||
{ | { | ||
"name": " | "name": "tc_head", | ||
"category": 5, | "category": 5, | ||
"type": "Solid", | "type": "Solid", | ||
Line 74: | Line 76: | ||
"wallDeltaSubdivisions": 10, | "wallDeltaSubdivisions": 10, | ||
"wallInitialT": 300.0, | "wallInitialT": 300.0, | ||
"chamberCriticalRadius": 0. | "chamberCriticalRadius": 0.075, | ||
"chamberThroatCurvatureRadius": 0.02, | "chamberThroatCurvatureRadius": 0.02, | ||
"coolingChannelLandX": 0.002, | "coolingChannelLandX": 0.002, | ||
"branch_gas": " | "branch_gas": "cc", | ||
"branch_liquid": " | "branch_liquid": "tc_head" | ||
} | } | ||
</pre> | </pre> | ||
Line 87: | Line 89: | ||
==== Gas Side (Hot Side) ==== | ==== Gas Side (Hot Side) ==== | ||
Heat transfer from hot combustion gases: | Heat transfer from hot combustion gases using '''Bartz correlation''': | ||
* ''' | * '''Method:''' <code>HeatTransfer::CoefficientBartz</code> | ||
* ''' | * '''Inputs:''' Gas pressure, temperature, gamma, cp, viscosity, Prandtl number | ||
* ''' | * '''Geometry:''' Chamber diameter, critical diameter, throat curvature radius | ||
* ''' | * '''Flow:''' Mach number, characteristic velocity, wall temperature | ||
* '''Application:''' Validated for nozzles with D*/rc ≈ 1, contraction/expansion angles 30°/15° | |||
* '''Accuracy:''' Within 50% angle variation and D*/rc < 3 | |||
==== Liquid Side (Cold Side) ==== | ==== Liquid Side (Cold Side) ==== | ||
Heat transfer to coolant flow: | Heat transfer to coolant flow using multiple correlations: | ||
* ''' | * '''Primary Method:''' <code>HeatTransfer::CoefficientGnielinski</code> for turbulent flow | ||
* ''' | * '''Alternative:''' <code>HeatTransfer::CoefficientDittusBoelter</code> (heating/cooling variants) | ||
* ''' | * '''Integration:''' <code>HeatTransfer::CoefficientNaraghi</code> combines liquid-side h with: | ||
* ''' | ** Conduction through channel lands | ||
** Geometric effects of cooling channel configuration | |||
** Cell-area multiplication factor for circumferential averaging | |||
* '''Inputs:''' Friction factor, Reynolds number, Prandtl number, thermal conductivity, hydraulic diameter | |||
=== Conduction Through Solid === | === Conduction Through Solid === | ||
==== Governing Equation ==== | ==== Governing Equation ==== | ||
One-dimensional transient heat conduction with finite differences: | |||
* ''' | * '''Discretization:''' Wall divided into <code>wallDeltaSubdivisions</code> cells | ||
* ''' | * '''Grid spacing:''' dx = wallDelta / subdivisions | ||
* ''' | * '''Thermal capacity:''' s_cp_dx = ρ × dx × cp (per unit area) | ||
* '''Thermal conductance:''' h_s = k / dx (between adjacent cells) | |||
==== | ==== Finite Difference Implementation ==== | ||
'''Interior nodes (i = 1 to subdivisions-2):''' | |||
<pre> | |||
dT/dt[i] = (h_s × (T[i-1] - T[i]) + h_s × (T[i+1] - T[i])) / s_cp_dx | |||
</pre> | |||
== | '''Boundary nodes:''' | ||
* '''Gas boundary (i=0):''' Uses adiabatic wall temperature and Bartz coefficient | |||
* '''Liquid boundary (i=subdivisions-1):''' Uses liquid temperature and Naraghi coefficient | |||
=== | ==== Material Properties ==== | ||
* '''Current Implementation:''' Properties evaluated at default temperature (300K) | |||
* '''Future Enhancement:''' Temperature-dependent properties (commented code exists) | |||
* '''Properties:''' k (thermal conductivity), ρ (density), cp (specific heat) | |||
==== | == Heat Transfer Correlations == | ||
=== | === Gas-Side Heat Transfer (Bartz Method) === | ||
Implementation based on "A Simple Approach for Thermal Analysis of Regenerative Cooling of Rocket - G Naraghi - IMECE2008-67988.pdf" | |||
'''Correlation:''' Modified Bartz equation for rocket nozzles | |||
* '''Gas properties:''' Pressure, temperature, specific heat ratio, gas constant | |||
* ''' | * '''Flow properties:''' Mach number, characteristic velocity | ||
* ''' | * '''Geometry effects:''' Local diameter, throat diameter, throat curvature radius | ||
* ''' | * '''Wall coupling:''' Uses wall temperature for property evaluation | ||
* ''' | |||
'''Adiabatic Wall Temperature:''' | |||
<pre> | |||
T_aw = T_recovery × (1 + recovery_factor × (γ-1)/2 × M²) | |||
</pre> | |||
=== | === Liquid-Side Heat Transfer === | ||
'''Gnielinski Correlation (Primary):''' | |||
* '''Application:''' Turbulent flow in cooling channels | |||
* ''' | * '''Range:''' 3000 < Re < 5×10⁶, 0.5 < Pr < 2000 | ||
* ''' | * '''Enhancement:''' Includes entrance effects and roughness | ||
* ''' | |||
== | '''Dittus-Boelter Correlation (Alternative):''' | ||
* '''Heating mode:''' Power = 0.4 | |||
* '''Cooling mode:''' Power = 0.3 | |||
* '''Simpler implementation''' for preliminary analysis | |||
'''Naraghi Integration Method:''' | |||
Combines liquid-side coefficient with: | |||
* '''Channel geometry:''' Width, height, land dimensions | |||
* '''Wall conduction:''' Through channel lands | |||
* '''Circumferential averaging:''' Using cell multiplier factor | |||
=== | == Implementation Details == | ||
== | === Constructor Parameters === | ||
The Solid class constructor requires these parameters in order: | |||
# '''material_name''' (string) - Must exist in materials.npz database | |||
# '''delta''' (double) - Wall thickness [m] | |||
# '''subdivisions''' (size_t) - Number of finite difference cells | |||
# '''initial_t''' (double) - Initial temperature [K] | |||
# '''critical_branch_radius''' (double) - Throat radius [m] (converted to diameter) | |||
# '''throat_curvature_radius''' (double) - For Bartz correlation [m] | |||
# '''channel_land_x''' (double) - Channel land width [m] | |||
=== | === Connection Requirements === | ||
* ''' | * '''Gas Branch:''' Must be BranchGas with DimType::Circle | ||
* ''' | * '''Liquid Branch:''' Any branch type, provides cooling flow properties | ||
* ''' | * '''Validation:''' Runtime error if gas branch is not circular | ||
=== | === Thermal Calculation Sequence === | ||
# '''Material Properties:''' Load k, ρ, cp at default temperature (300K) | |||
# '''Gas Properties:''' Calculate cp, μ, characteristic velocity from gas state | |||
# '''Heat Transfer Coefficients:''' | |||
## Gas-side: Bartz correlation → h_g | |||
## Liquid-side: Gnielinski → h_l → Naraghi integration → h_l_total | |||
# '''Boundary Temperatures:''' | |||
## Adiabatic wall temperature from isentropic relations | |||
## Liquid temperature from fluid state | |||
# '''Finite Difference:''' Update temperature derivatives for all nodes | |||
=== | == References and Implementation Notes == | ||
=== | === Primary Reference === | ||
Implementation follows: "A Simple Approach for Thermal Analysis of Regenerative Cooling of Rocket - G Naraghi - IMECE2008-67988.pdf" | |||
== | === Heat Transfer Constants === | ||
From <code>ThermalConductivity</code> namespace: | |||
* '''Copper:''' 342 W/m·K (@927K) | |||
* '''NARloyZ:''' 316 W/m·K (@533K) - specialized copper alloy | |||
=== | === Limitations and Future Work === | ||
* ''' | * '''Material Properties:''' Currently evaluated at 300K (TODO: temperature-dependent) | ||
* ''' | * '''1D Assumption:''' Through-thickness conduction only | ||
* ''' | * '''Bartz Correlation:''' Valid for specific nozzle geometries (see code comments) | ||
* ''' | * '''No Radiation:''' Gas-side radiation effects not included | ||
=== | === Code Structure === | ||
* ''' | * '''Header:''' <code>src/lorensim/model/solid.h</code> | ||
* '''Heat | * '''Implementation:''' <code>src/lorensim/model/solid.cpp</code> | ||
* ''' | * '''Heat Transfer:''' <code>src/lorensim/model/heat_transfer.h/.cpp</code> | ||
* ''' | * '''Material Properties:''' <code>src/lorensim/model/material_properties.h/.cpp</code> | ||
* '''JSON Parsing:''' <code>src/lorensim/model_builder/builder_json.cpp</code> | |||
== See Also == | == See Also == |
Latest revision as of 19:54, 15 July 2025
Meco Solids
Solid components model heat transfer through solid materials in rocket engine systems. They are essential for thermal analysis of combustion chambers, nozzles, and cooling systems.
Overview
The Meco Rocket Simulator supports 1 solid component type:
Component Type | Purpose | Key Features | Applications |
---|---|---|---|
Solid | Heat transfer modeling | Multi-layer thermal analysis | Chamber walls, cooling channels, nozzles |
Solid Component
Overview
- Type:
Solid
- Purpose: Heat transfer solid for modeling chamber walls, cooling channels, and thermal barriers
- Modeling: One-dimensional transient heat conduction with finite difference discretization
- Implementation: Uses implicit finite difference scheme with temperature-dependent boundary conditions
Parameters
Basic Parameters
- Connection Parameters:
name
- Component name (string)branch_gas
- Connected gas branch name (string)branch_liquid
- Connected liquid branch name (string)
- Material Properties:
materialName
- Material type identifier (string, must exist in materials.npz database)
Thermal Parameters
- Wall Properties:
wallDelta
- Wall thickness in meters (double)wallDeltaSubdivisions
- Number of finite difference subdivisions through thickness (size_t)wallInitialT
- Initial temperature in Kelvin (double)
- Geometric Parameters:
chamberCriticalRadius
- Critical throat radius in meters (double, converted to diameter internally)chamberThroatCurvatureRadius
- Throat curvature radius for Bartz correlation (double)coolingChannelLandX
- Cooling channel land dimension in meters (double)
Design Guidelines
Material Selection
Common rocket engine materials (from materials.npz database):
- Copper: Excellent thermal conductivity, regenerative cooling
- Stainless Steel: Good strength, moderate thermal properties
- Inconel: High-temperature strength, gas generator applications
- NARloyZ: Copper alloy (k=316 W/m·K @533K), specialized rocket applications
Note: Material properties (thermal conductivity k, density ρ, specific heat cp) are loaded from a preprocessed materials.npz database and interpolated as functions of temperature.
Thermal Mesh Resolution
- Subdivisions: Typically 5-20 through wall thickness
- Fine Mesh: More subdivisions for better accuracy
- Coarse Mesh: Fewer subdivisions for faster computation
- Critical Areas: Use finer mesh near throat and high heat flux zones
Temperature Initialization
- Ambient Start: 300 K for room temperature startup
- Preheated: Consider preheating for hot fire simulations
- Previous Run: Use converged temperatures from prior analysis
Example JSON
{ "name": "tc_head", "category": 5, "type": "Solid", "materialName": "Copper", "wallDelta": 0.003, "wallDeltaSubdivisions": 10, "wallInitialT": 300.0, "chamberCriticalRadius": 0.075, "chamberThroatCurvatureRadius": 0.02, "coolingChannelLandX": 0.002, "branch_gas": "cc", "branch_liquid": "tc_head" }
Heat Transfer Modeling
Thermal Boundary Conditions
Gas Side (Hot Side)
Heat transfer from hot combustion gases using Bartz correlation:
- Method:
HeatTransfer::CoefficientBartz
- Inputs: Gas pressure, temperature, gamma, cp, viscosity, Prandtl number
- Geometry: Chamber diameter, critical diameter, throat curvature radius
- Flow: Mach number, characteristic velocity, wall temperature
- Application: Validated for nozzles with D*/rc ≈ 1, contraction/expansion angles 30°/15°
- Accuracy: Within 50% angle variation and D*/rc < 3
Liquid Side (Cold Side)
Heat transfer to coolant flow using multiple correlations:
- Primary Method:
HeatTransfer::CoefficientGnielinski
for turbulent flow - Alternative:
HeatTransfer::CoefficientDittusBoelter
(heating/cooling variants) - Integration:
HeatTransfer::CoefficientNaraghi
combines liquid-side h with:- Conduction through channel lands
- Geometric effects of cooling channel configuration
- Cell-area multiplication factor for circumferential averaging
- Inputs: Friction factor, Reynolds number, Prandtl number, thermal conductivity, hydraulic diameter
Conduction Through Solid
Governing Equation
One-dimensional transient heat conduction with finite differences:
- Discretization: Wall divided into
wallDeltaSubdivisions
cells - Grid spacing: dx = wallDelta / subdivisions
- Thermal capacity: s_cp_dx = ρ × dx × cp (per unit area)
- Thermal conductance: h_s = k / dx (between adjacent cells)
Finite Difference Implementation
Interior nodes (i = 1 to subdivisions-2):
dT/dt[i] = (h_s × (T[i-1] - T[i]) + h_s × (T[i+1] - T[i])) / s_cp_dx
Boundary nodes:
- Gas boundary (i=0): Uses adiabatic wall temperature and Bartz coefficient
- Liquid boundary (i=subdivisions-1): Uses liquid temperature and Naraghi coefficient
Material Properties
- Current Implementation: Properties evaluated at default temperature (300K)
- Future Enhancement: Temperature-dependent properties (commented code exists)
- Properties: k (thermal conductivity), ρ (density), cp (specific heat)
Heat Transfer Correlations
Gas-Side Heat Transfer (Bartz Method)
Implementation based on "A Simple Approach for Thermal Analysis of Regenerative Cooling of Rocket - G Naraghi - IMECE2008-67988.pdf"
Correlation: Modified Bartz equation for rocket nozzles
- Gas properties: Pressure, temperature, specific heat ratio, gas constant
- Flow properties: Mach number, characteristic velocity
- Geometry effects: Local diameter, throat diameter, throat curvature radius
- Wall coupling: Uses wall temperature for property evaluation
Adiabatic Wall Temperature:
T_aw = T_recovery × (1 + recovery_factor × (γ-1)/2 × M²)
Liquid-Side Heat Transfer
Gnielinski Correlation (Primary):
- Application: Turbulent flow in cooling channels
- Range: 3000 < Re < 5×10⁶, 0.5 < Pr < 2000
- Enhancement: Includes entrance effects and roughness
Dittus-Boelter Correlation (Alternative):
- Heating mode: Power = 0.4
- Cooling mode: Power = 0.3
- Simpler implementation for preliminary analysis
Naraghi Integration Method: Combines liquid-side coefficient with:
- Channel geometry: Width, height, land dimensions
- Wall conduction: Through channel lands
- Circumferential averaging: Using cell multiplier factor
Implementation Details
Constructor Parameters
The Solid class constructor requires these parameters in order:
- material_name (string) - Must exist in materials.npz database
- delta (double) - Wall thickness [m]
- subdivisions (size_t) - Number of finite difference cells
- initial_t (double) - Initial temperature [K]
- critical_branch_radius (double) - Throat radius [m] (converted to diameter)
- throat_curvature_radius (double) - For Bartz correlation [m]
- channel_land_x (double) - Channel land width [m]
Connection Requirements
- Gas Branch: Must be BranchGas with DimType::Circle
- Liquid Branch: Any branch type, provides cooling flow properties
- Validation: Runtime error if gas branch is not circular
Thermal Calculation Sequence
- Material Properties: Load k, ρ, cp at default temperature (300K)
- Gas Properties: Calculate cp, μ, characteristic velocity from gas state
- Heat Transfer Coefficients:
- Gas-side: Bartz correlation → h_g
- Liquid-side: Gnielinski → h_l → Naraghi integration → h_l_total
- Boundary Temperatures:
- Adiabatic wall temperature from isentropic relations
- Liquid temperature from fluid state
- Finite Difference: Update temperature derivatives for all nodes
References and Implementation Notes
Primary Reference
Implementation follows: "A Simple Approach for Thermal Analysis of Regenerative Cooling of Rocket - G Naraghi - IMECE2008-67988.pdf"
Heat Transfer Constants
From ThermalConductivity
namespace:
- Copper: 342 W/m·K (@927K)
- NARloyZ: 316 W/m·K (@533K) - specialized copper alloy
Limitations and Future Work
- Material Properties: Currently evaluated at 300K (TODO: temperature-dependent)
- 1D Assumption: Through-thickness conduction only
- Bartz Correlation: Valid for specific nozzle geometries (see code comments)
- No Radiation: Gas-side radiation effects not included
Code Structure
- Header:
src/lorensim/model/solid.h
- Implementation:
src/lorensim/model/solid.cpp
- Heat Transfer:
src/lorensim/model/heat_transfer.h/.cpp
- Material Properties:
src/lorensim/model/material_properties.h/.cpp
- JSON Parsing:
src/lorensim/model_builder/builder_json.cpp
See Also
- Main Components Overview
- Branch Components
- Node Components
- Heat Transfer Analysis
- Rocket Engine Cooling Systems
- Material Properties Database
- Thermal Stress Analysis