Meco Solids: Difference between revisions

From Meco Rocket Simulator Wiki
(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:''' Multi-dimensional heat conduction with boundary conditions from gas and liquid flows
* '''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 in meters (double)
** <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
* '''Carbon-Carbon:''' Ultra-high temperature, nozzle extensions
* '''NARloyZ:''' Copper alloy (k=316 W/m·K @533K), specialized rocket applications
* '''Ceramic:''' Thermal barrier coatings, insulation
 
'''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": "Chamber Wall",
   "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.15,
   "chamberCriticalRadius": 0.075,
   "chamberThroatCurvatureRadius": 0.02,
   "chamberThroatCurvatureRadius": 0.02,
   "coolingChannelLandX": 0.002,
   "coolingChannelLandX": 0.002,
   "branch_gas": "Main Chamber Gas",
   "branch_gas": "cc",
   "branch_liquid": "Cooling Channel"
   "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''':
* '''Convection:''' Function of gas temperature, velocity, and properties
* '''Method:''' <code>HeatTransfer::CoefficientBartz</code>
* '''Radiation:''' High-temperature radiative heat transfer
* '''Inputs:''' Gas pressure, temperature, gamma, cp, viscosity, Prandtl number
* '''Gas Temperature:''' Typically 2000-4000 K in main chamber
* '''Geometry:''' Chamber diameter, critical diameter, throat curvature radius
* '''Heat Flux:''' Can exceed 50 MW/m² in throat region
* '''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:
* '''Convection:''' Function of coolant properties and flow conditions
* '''Primary Method:''' <code>HeatTransfer::CoefficientGnielinski</code> for turbulent flow
* '''Nucleate Boiling:''' Enhanced heat transfer in cooling channels
* '''Alternative:''' <code>HeatTransfer::CoefficientDittusBoelter</code> (heating/cooling variants)
* '''Film Boiling:''' Degraded heat transfer at very high heat flux
* '''Integration:''' <code>HeatTransfer::CoefficientNaraghi</code> combines liquid-side h with:
* '''Coolant Temperature:''' Typically 20-200 K for cryogenic propellants
** 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 ====
Three-dimensional heat conduction:
One-dimensional transient heat conduction with finite differences:
* '''Transient:''' ∂T/∂t term for time-dependent analysis
* '''Discretization:''' Wall divided into <code>wallDeltaSubdivisions</code> cells
* '''Steady-State:''' For equilibrium thermal analysis
* '''Grid spacing:''' dx = wallDelta / subdivisions
* '''Material Properties:''' Temperature-dependent conductivity and specific heat
* '''Thermal capacity:''' s_cp_dx = ρ × dx × cp (per unit area)
* '''Thermal conductance:''' h_s = k / dx (between adjacent cells)


==== Numerical Method ====
==== Finite Difference Implementation ====
* '''Finite Difference:''' Discretization through wall thickness
'''Interior nodes (i = 1 to subdivisions-2):'''
* '''Implicit Scheme:''' Stable for large time steps
<pre>
* '''Convergence:''' Iterative solution for nonlinear properties
dT/dt[i] = (h_s × (T[i-1] - T[i]) + h_s × (T[i+1] - T[i])) / s_cp_dx
</pre>


== Cooling System Analysis ==
'''Boundary nodes:'''
* '''Gas boundary (i=0):''' Uses adiabatic wall temperature and Bartz coefficient
* '''Liquid boundary (i=subdivisions-1):''' Uses liquid temperature and Naraghi coefficient


=== Regenerative Cooling ===
==== Material Properties ====
Most common rocket engine cooling method:
* '''Current Implementation:''' Properties evaluated at default temperature (300K)
* '''Future Enhancement:''' Temperature-dependent properties (commented code exists)
* '''Properties:''' k (thermal conductivity), ρ (density), cp (specific heat)


==== Design Parameters ====
== Heat Transfer Correlations ==
* '''Channel Geometry:''' Rectangular, circular, or custom shapes
* '''Channel Spacing:''' Land-to-channel width ratio
* '''Flow Direction:''' Counter-flow for maximum effectiveness
* '''Pressure Drop:''' Balance cooling effectiveness with pump requirements


==== Performance Metrics ====
=== Gas-Side Heat Transfer (Bartz Method) ===
* '''Heat Removal:''' Total heat extracted by coolant
Implementation based on "A Simple Approach for Thermal Analysis of Regenerative Cooling of Rocket - G Naraghi - IMECE2008-67988.pdf"
* '''Temperature Rise:''' Coolant temperature increase
* '''Wall Temperature:''' Maximum metal temperature
* '''Margin:''' Safety factor to material limits


=== Film Cooling ===
'''Correlation:''' Modified Bartz equation for rocket nozzles
Supplementary cooling method:
* '''Gas properties:''' Pressure, temperature, specific heat ratio, gas constant
* '''Film Injection:''' Coolant injected along wall surface
* '''Flow properties:''' Mach number, characteristic velocity
* '''Coverage:''' Fraction of surface protected by film
* '''Geometry effects:''' Local diameter, throat diameter, throat curvature radius
* '''Effectiveness:''' Heat transfer reduction due to film
* '''Wall coupling:''' Uses wall temperature for property evaluation
* '''Integration:''' Combined with regenerative cooling


== Material Properties ==
'''Adiabatic Wall Temperature:'''
 
<pre>
=== Thermal Conductivity ===
T_aw = T_recovery × (1 + recovery_factor × (γ-1)/2 × M²)
Temperature-dependent values:
</pre>
* '''Copper:''' 400-350 W/m·K (decreasing with temperature)
* '''Steel:''' 45-25 W/m·K (decreasing with temperature)
* '''Inconel:''' 15-25 W/m·K (increasing with temperature)


=== Specific Heat ===
=== Liquid-Side Heat Transfer ===
* '''Copper:''' 385-480 J/kg·K (increasing with temperature)
* '''Steel:''' 460-600 J/kg·K (increasing with temperature)
* '''Inconel:''' 440-640 J/kg·K (increasing with temperature)


=== Density ===
'''Gnielinski Correlation (Primary):'''
Generally constant with temperature:
* '''Application:''' Turbulent flow in cooling channels
* '''Copper:''' 8960 kg/m³
* '''Range:''' 3000 < Re < 5×10⁶, 0.5 < Pr < 2000
* '''Steel:''' 7850 kg/m³
* '''Enhancement:''' Includes entrance effects and roughness
* '''Inconel:''' 8220 kg/m³


== Design Process ==
'''Dittus-Boelter Correlation (Alternative):'''
* '''Heating mode:''' Power = 0.4
* '''Cooling mode:''' Power = 0.3
* '''Simpler implementation''' for preliminary analysis


=== Thermal Design Steps ===
'''Naraghi Integration Method:'''
# '''Heat Load Analysis:''' Determine gas-side heat flux distribution
Combines liquid-side coefficient with:
# '''Cooling Requirements:''' Calculate required heat removal
* '''Channel geometry:''' Width, height, land dimensions
# '''Channel Design:''' Size cooling channels for heat removal and pressure drop
* '''Wall conduction:''' Through channel lands
# '''Material Selection:''' Choose materials for temperature and stress requirements
* '''Circumferential averaging:''' Using cell multiplier factor
# '''Mesh Resolution:''' Select subdivision count for accuracy vs. speed
# '''Validation:''' Compare results with experimental data or correlations


=== Critical Considerations ===
== Implementation Details ==
# '''Throat Region:''' Highest heat flux, most critical thermal design
# '''Material Limits:''' Avoid exceeding melting point or stress rupture
# '''Thermal Gradients:''' Large gradients cause thermal stress
# '''Coolant Boiling:''' Avoid film boiling for effective heat transfer
# '''Transient Effects:''' Consider startup and shutdown thermal cycling


== Common Applications ==
=== 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]


=== Main Combustion Chamber ===
=== Connection Requirements ===
* '''Chamber Walls:''' Cylindrical sections with regenerative cooling
* '''Gas Branch:''' Must be BranchGas with DimType::Circle
* '''Injector Face:''' High heat flux region requiring effective cooling
* '''Liquid Branch:''' Any branch type, provides cooling flow properties
* '''Material:''' Typically copper or copper alloy for high conductivity
* '''Validation:''' Runtime error if gas branch is not circular


=== Nozzle Throat ===
=== Thermal Calculation Sequence ===
* '''Throat Insert:''' Highest heat flux location in engine
# '''Material Properties:''' Load k, ρ, cp at default temperature (300K)
* '''Curvature Effects:''' Throat radius affects heat transfer
# '''Gas Properties:''' Calculate cp, μ, characteristic velocity from gas state
* '''Material:''' Often specialized high-temperature alloys
# '''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


=== Nozzle Extension ===
== References and Implementation Notes ==
* '''Diverging Section:''' Decreasing heat flux with expansion
* '''Radiation Cooling:''' May use radiation cooling at low heat flux
* '''Material:''' Can use lighter materials like carbon-carbon


=== Gas Generator ===
=== Primary Reference ===
* '''Chamber Walls:''' Lower heat flux than main chamber
Implementation follows: "A Simple Approach for Thermal Analysis of Regenerative Cooling of Rocket - G Naraghi - IMECE2008-67988.pdf"
* '''Simpler Cooling:''' May use film cooling or thermal barriers
* '''Material:''' Steel or Inconel for cost and durability


== Performance Optimization ==
=== Heat Transfer Constants ===
From <code>ThermalConductivity</code> namespace:
* '''Copper:''' 342 W/m·K (@927K)
* '''NARloyZ:''' 316 W/m·K (@533K) - specialized copper alloy


=== Heat Transfer Enhancement ===
=== Limitations and Future Work ===
* '''Surface Roughness:''' Increases convective heat transfer
* '''Material Properties:''' Currently evaluated at 300K (TODO: temperature-dependent)
* '''Channel Geometry:''' Optimized shapes for heat transfer and pressure drop
* '''1D Assumption:''' Through-thickness conduction only
* '''Flow Turbulence:''' Enhanced mixing improves heat transfer
* '''Bartz Correlation:''' Valid for specific nozzle geometries (see code comments)
* '''Fins/Extensions:''' Increase surface area on coolant side
* '''No Radiation:''' Gas-side radiation effects not included


=== Thermal Management ===
=== Code Structure ===
* '''Thermal Barriers:''' Reduce gas-side heat flux
* '''Header:''' <code>src/lorensim/model/solid.h</code>
* '''Heat Sinks:''' Absorb transient heat loads
* '''Implementation:''' <code>src/lorensim/model/solid.cpp</code>
* '''Insulation:''' Reduce external heat loss
* '''Heat Transfer:''' <code>src/lorensim/model/heat_transfer.h/.cpp</code>
* '''Preheating:''' Reduce thermal shock during startup
* '''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:

  1. material_name (string) - Must exist in materials.npz database
  2. delta (double) - Wall thickness [m]
  3. subdivisions (size_t) - Number of finite difference cells
  4. initial_t (double) - Initial temperature [K]
  5. critical_branch_radius (double) - Throat radius [m] (converted to diameter)
  6. throat_curvature_radius (double) - For Bartz correlation [m]
  7. 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

  1. Material Properties: Load k, ρ, cp at default temperature (300K)
  2. Gas Properties: Calculate cp, μ, characteristic velocity from gas state
  3. Heat Transfer Coefficients:
    1. Gas-side: Bartz correlation → h_g
    2. Liquid-side: Gnielinski → h_l → Naraghi integration → h_l_total
  4. Boundary Temperatures:
    1. Adiabatic wall temperature from isentropic relations
    2. Liquid temperature from fluid state
  5. 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