Project Report on
Bachelor of Technology
in
Mechanical and Industrial Engineering
Submitted By
We hereby declare that the work, which is being presented in this project report entitled
"1D and 2D Ablation Code" in partial fulfilment of the requirements for the award of the
Technology Roorkee, India is an authentic record of our own work carried out during the
period from august 2017 to April 2018, under the supervision of Dr. Ankit Bansal,
The matter embodied in the report has not been submitted by us for the award of any
Date:
Place:
This is to certify that the report submitted by Mr. Bula Lohith and Mr. Shailesh on "1D
and 2D Ablation Code" in partial fulfilment for the degree of Bachelor of Technology in
Production and Industrial Engineering is an authentic record of their project work which
We express our deep sense of gratitude and indebtedness to our revered guide Dr.
Indian Institute of Technology, Roorkee, India. Who provided whole hearted co-
operation, never ending inspirations and guidance, all blended with personal touch
throughout the duration of this work. His in valuable suggestions and through
We take this opportunity to put in record our respect to Dr. Dinesh Kumar, Head of
Roorkee, for providing various facilities during course of the present investigation.
I would like to thank my colleagues for their valuable suggestions and help as when
required and all others for their enthusiastic support, encouragement and help.
The last but not least we are grateful to our family members for their love, suggestions
and moral support without which we would not have achieved this goal.
ABSTRACT
1. INTRODUCTION 2
2. LITERATURE REVIEW 5
2.2 Sublimation 22
3. OPENFOAM 10
3.5 Solving 17
4.6 Results 28
5. POROUS MEDIUM 29
5.2 rhoPorousSimpleFoam 30
5.3 SonicFoam 31
6. AblationFOAM 33
8. Results 37
8.1 Temperature 37
8.2 Density 38
9. Conclusion 39
10. IMPROVEMENTS 40
11. References 41
12 Appendix 42
List of Figures and Tables
Fig 1.1 Schematic of heat and mass transfer for an ablating material 3
Heat transfer solvers have been used for decades for solving and simulating various real
life problems such as heat exchangers, thermo-elastic problems, turbines, etc. But these solvers
fail to simulate problems such as entry of space vehicles where we have to choose best material
to meet missile constraints of weight, volume, handling, storage, thermal conductivity and
ablation.
Our project aims at taking the sublimation energy of the diffused gases into Laplace
equation. Here we include the Sublimation energy term in the Laplace equation to calculate
density and temperature variation over time of the ablative materials. We use governing
1
CHAPTER 1
INTRODUCTION
Faster velocities and longer flight durations of missiles require external thermal
determine the best material to meet missile constraints of weight, volume, handling, storage,
thermal conductivity and ablation. Therefore, a software is needed to be developed which takes
into account ablation phenomena for accurate results and performance of the material.
Usually materials used in rocket motor applications pyrolyze and or ablate at high
temperatures and heat fluxes usually expected in rocket motor applications. In addition to heat
material. As the material is heated, the original virgin material pyrolyzes and yields a pyrolysis
gas that diffuses to the surface. (Pyrolysis is a chemical reaction involving heat.)
Char is left after pyrolysis. The surface of the char layer may then withdraw, a process
known as ablation. This ablation model is one-dimensional. The different layers of material are
split into nodes, and a finite-difference approach is used to calculate the temperature change
Thermal protection material may be classified into pyrolysing and non-pyrolysing type.
In non-pyrolysing material such as carbon-carbon and graphite, mass loss only occurs at the
surface due to thermo-chemical and mechanical erosion. On the other hand, the pyrolysing
material are composites made of fiber reinforcement in a resin matrix (e.g. carbon-phenolic,
silica-phenolic etc.). When heated, the resin undergo a series of chemical reactions that release
2
gaseous products (pyrolysis), leaving a layer of char or reside. The char itself can withdraw due
Numerous codes have been developed for ablation modelling. The most basic ablation
code models the core phenomena of the pyrolysis-ablation process however, momentum
conservation equation is not implemented and the internal pressure is arbitrarily specified. These
(Thermal Protective Shield) may be a single or multilayer composite. The inner surface of
TPS is bonded to a structural component. There can be different causes of mass loss such as
phase change, erosion and chemical reaction. In addition some type of ablators called
charring ablators experience physical pyrolysis that involves the decomposition of the
3
material and the generation of pyrolysis gas, which diffuse through the porous medium. The
ablation products, that includes char and pyrolysis gas, are then partially injected into the
boundary layer resulting in the modification of the surface heat transfer .The various physical
process occurring at the surface and inner layers of an ablative material are shown in fig 1.
The polymer in the heat shield is thermally decomposed and successively carbonized into a
low-density static graphite, losing mass while letting out pyrolysis gases. The pyrolysis gas
percolate through the porous structure of the material and diffuse to the surface through the
network of pores. Reactions with in the pyrolysis gas mixture and the char take place with
possible coking effects. Mixing of pyrolysis gases may take place with the gases piercing
from the boundary layer. After charring and coking of the ablative material, the material is
removed by ablation and the initial surface withdraws. Ablation may be caused by
(sublimation) and mechanical erosion. The thickness of the ablation layer depends on the
4
Chapter 2
LITERATURE REVIEW
Conduction is a transfer through solids or stationery fluids. When you come in contact
with a hot body, the heat you feel is transferred through your skin by conduction. The heat is
flowed or transferred because of the temperature difference between hot body and your skin.
Heat transfer by conduction is mainly caused by particle collision and lattice or molecular
The law of thermal heat conduction, also known as Fourier's law that is the rate of heat
transfer through the body is directly proportional to the negative gradient in the temperature and
to the area at right angles, to that gradient, through which the heat is flowing:
Q
k T dS (2.1)
t s
Where:
5
2.2 Sublimation
phase, without forming a liquid. Sublimation is one type of vaporization. As with evaporation,
sublimation is possible within the whole range of temperatures T and pressures p over which the
solid and gaseous phases coexist. It is well known that any substance can exist in one of the
three states of aggregation: solid, liquid or gas. Two phase conditions can correspond to the solid
state: crystal and amorphous; therefore, the notion "phase condition" is broader than the
"aggregate" one. Below, however, the term "phase transition" implies exactly the change of the
state of aggregation
The curves of phase equilibrium on the p-T plane intersect at the triple point, where
all three states of aggregation of the substance (solid, liquid and gas) take place
6
simultaneously. The change from a solid state to a liquid state is called "melting": the
process of changing from a solid state to a gaseous one is called "sublimation" and from a
liquid to a gaseous one is called "evaporation". The reverse process to evaporation and
sublimation is called "condensation". The pressure at which the gaseous and condensed
(liquid or solid) phases coexist is called the "saturated vapor pressure". For any substance
Qv mv
pvH exp[k ] (2.2)
RTW
Where ΔQv is the heat of sublimation, vapour molecular mass, R the universal gas
constant, and k is the experimentally defined constant. The heat of sublimation depends weakly
processes of molecular emission from the interface between the gas and condensed phases, the
rate of emission being governed by the thermal motion of molecules. The velocity of the reverse
process (condensation) is proportional to the number of molecules per unit volume, i.e., to the
condensation rate is equal to the sublimation rate. The appropriate, partial pressure is called the
According to this model, the mass flow rate of substance during sublimation is the result
for two counter processes, i.e., it is defined by the difference between the saturated vapour
7
pressure which applies at the interface, and the partial pressure in the bulk vapour, pv the
interface temperature
a( pH p )
G (2.3)
2 RTw
M
the evaporation coefficient. More accurate investigations based on the methods of the molecular-
kinetic theory of gases, show that in Eq. (4.3) the coefficient before the brackets is in the form
2a/(2 − a). This takes into account the transverse constituent of the mass velocity in the function
As discussed above when camphor is subjected to heat flux, sublimation takes place.
Now due to the heat flux and temperature change in the camphor cube heat conduction takes
place and sublimation takes place. Now consider a small square element in the camphor cube,
let the energy contained in it be E. Heat conducted into the element is qconduction , given by the
equation (). Heat taken away by the sublimated camphor is given by qsublimation. So, the change in
the energy of the camphor square element is given by the following equation.
E
kAT mhs (2.4)
t
Energy contained in square element is given by
E msT (2.5)
8
Differentiating both sides with time
E T
ms (2.6)
t t
From equation (1) and (2)
T
ms kAT mhs (2.7)
t
Dividing by V on both sides, we get
T 1 2
s (kT ) hs (2.8)
t V
Dividing by on both sides, we get
T
( T )
2
h (2.9)
t s s
As we can see, the above equation is similar to Laplacian equation, with an additional
Porous media is modeled by attenuating the time derivative and by adding a sink term to
9
(2.1)
The value of γ should be between 0 and 1, where the latter is a complete porosity. The
source term, S i , is composed of two parts, a viscous loss term and an inertial loss term, creating
a pressure drop that is proportional to the velocity and velocity squared, respectively.
(2.2)
(2.3)
The source term can also be modeled as a power law of the velocity magnitude,
(2.4)
porousZoneTemplates.C. The member function used to modify the time-dependent term with the
value, γ, is named modifyDdt. The viscous and inertial source terms from eqn. 2, are defined in
the addViscousInertialResistance member function and the power law from eqn. 4, is defined in
the addPowerLawResistance member function. Those two member functions used for calculating
10
the source term are overloaded for explicit and implicit use. The first one that appears in the
template is used for explicit calculations and the second one for implicit.
and by chemical interaction between the boundary layer gas, the pyrolysis gas, the ablation
product and the chemical constituents of the surface material. At the bond line conservative and
adiabatic impermeable boundary conditions are usually used the ablative boundary condition at
the interface between flow and the material is return in the terms of surface energy balance and
reacting porous materials that undergo recession. The governing equations are volume-averaged
11
equations. It may also simply be used as a state-of-the-art ablation model when the right model
(1) Volume-average study of the oxidation of a carbon-fiber preform under dry air
facing an arc-jet
(3) Comparison of a state-of-the-art and a high-fidelity model for the thermal and chemical
12
Chapter 3
OPENFOAM
OpenFOAM also known as "Open source Field Operation and Manipulation" is a C++
toolbox for the development of customized numerical solvers, and pre-/post-processing utilities
for the solution of continuum mechanics problems, including computational fluid dynamics
(CFD). The code is released as free and open-source software under the GNU General Public
License.
OpenFOAM is first and foremost a C++ library, used primarily to create executables, known
as applications. The applications fall into two categories: solvers, that are each designed to solve
a specific problem in continuum mechanics; and utilities, that are designed to perform tasks that
involve data manipulation. New solvers and utilities can be created by its users with some
involved.
13
OpenFOAM is supplied with pre- and post-processing environments. The interface to the
pre- and post-processing are themselves OpenFOAM utilities, thereby ensuring consistent data
handling across all environments. The overall structure of OpenFOAM is shown in Figure 3.1
The basic directory structure for a OpenFOAM case, that contains the minimum set of
subdirectory polyMesh and files specifying physical properties for the application
concerned, e.g.transportProperties.
● A system directory for setting parameters associated with the solution procedure itself. It
contains at least the following 3 files: controlDict where run control parameters are set
14
including start/end time, time step and parameters for data output; fvSchemes where
and, fvSolution where the equation solvers, tolerances and other algorithm controls are
● The time directories containing individual files of data for particular fields. The data can
be: either, initial values and boundary conditions that the user must specify to define the
OpenFOAM is distributed with a large set of precompiled applications but users also have the
freedom to create their own or modify existing ones. Applications are split into two main
categories:
● Solvers that are each designed to solve a specific problem in computational continuum
mechanics;
● Utilities that perform simple pre-and post-processing tasks, mainly involving data
OpenFOAM is divided into a set of precompiled libraries that are dynamically linked during
compilation of the solvers and utilities. Libraries such as those for physical models are supplied
as source code so that users may conveniently add their own models to the libraries.
15
3.3 Mesh Description
The mesh is an integral part of the numerical solution and must satisfy certain criteria to
ensure a valid, and hence accurate, solution. During any run, OpenFOAM checks that the mesh
satisfies a fairly stringent set of validity constraints and will cease running if the constraints are
not fulfilled. The consequence is that a user may experience some frustration in ‘correcting’ a
large mesh generated by third-party mesh generators before OpenFOAM will run using it. This is
unfortunate but we make no apology for OpenFOAM simply adopting good practice to ensure
the mesh is valid; otherwise, the solution is flawed before the run has even begun.
subdirectory polyMesh. The polyMesh description is based around faces and, as already
discussed, internal cells connect 2 cells and boundary faces address a cell and a boundary patch.
Each face is therefore assigned an ‘owner’ cell and ‘neighbor’ cell so that the connectivity across
a given face can simply be described by the owner and neighbor cell labels. In the case of
boundaries, the connected cell is the owner and the neighbor is assigned the label ‘-1’. With this
● Points
a list of vectors describing the cell vertices, where the first vector in the list represents
● Faces
a list of faces, each face being a list of indices to vertices in the points list, where again,
16
● owner
a list of owner cell labels, the index of entry relating directly to the index of the face, so
that the first entry in the list is the owner label for face 0, the second entry is the owner
● boundary
a list of patches, containing a dictionary entry for each patch, declared using the patch
name, e.g.movingWall
{
type patch;
nFaces 20;
startFace 760;
}
problem. The equations and algorithms differ from one solver to another so that the selection of a
solver involves the user making some initial choices on the modelling for their particular case.
The choice of solver typically involves scanning through their descriptions to find the one
suitable for the case. It ultimately determines many of the parameters and physical properties
required to define the case but leaves the user with some modelling options that can be specified
at runtime through the entries in dictionary files in the constant directory of a case.
boundary conditions will lead to physically incorrect predictions, and in many cases solver
17
failure. Users must specify the boundary conditions for each solved field. The tutorials provided
with OpenFOAM show examples of good practice in terms of selection and application for
various cases.
Boundary conditions are organized into categories for easier navigation, comprising:
● Basic
Basic types are
● fixedValue
● fixedGradient
● mixed
● Constraint
● Geometrical constraints
● Symmetry
● Wedge
● Derived
Specialised conditions
3.5 Solving
Solving involves managing OpenFOAM cases including options to control the time and
output behavior, numerical schemes, solvers, and how to monitor solution progress.
I/O and, since output of data is usually requested at intervals of time during the run, time is an
inextricable part of the database. The controlDict dictionary sets input parameters essential for
18
the creation of the database. Only the time control and writeInterval entries are truly compulsory,
with the database taking default values indicated for any of the optional entries that are omitted.
such as derivatives in equations that appear in applications being run. This section describes how
3.6 Post-processing
OpenFOAM is supplied with a post-processing utility ParaFoam that uses Para View, an
open source visualisation application. ParaFoam is strictly a script that launches Para View, by
default using the reader module supplied with OpenFOAM. The term ParaFoam may thus
19
After ParaView is launched and opens, the window shown in Figure 3.3 is displayed. The
case is controlled from the left panel, which contains the following:
● Pipeline Browser
Lists the modules opened in ParaView, where the selected modules are highlighted in blue and
the graphics for the given module can be enabled/disabled by clicking the eye button
alongside;
● Properties panel
Contains the input selections for the case, such as times, regions and fields;
● Display panel
Controls the visual representation of the selected module, e.g. colors
● Information panel
Gives case statistics such as mesh geometry and size.
20
Chapter 4
Conduction and Sublimation of Camphor
When camphor is subjected to heat flux, heat passes through layers of camphor by
conduction, convection and radiation. When a layer of camphor reaches saturation temperature it
absorbs the heat energy and sublimates, this heat energy absorbed is called sublimation energy.
In this project, we are neglecting heat transfer through convection and radiation.
Laplacian Foam is a solver in OpenFOAM that solves a simple laplacian equation, e.g. for
thermal diffusion in a solid. Laplacian foam doesn’t consider the heat generation. Where the heat
T
(T ) (4.11)
t
The above equation is solved in laplacianFoam.C
while (simple.correctNonOrthogonal())
{
fvScalarMatrix TEqn
(
fvm::ddt(T) - fvm::laplacian(DT, T)
==
fvOptions(T)
);
fvOptions.constrain(TEqn);
TEqn.solve();
fvOptions.correct(T);
}
21
The variable DT represents the thermal diffusivity α and it is specified in the constant/transport
properties file.
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
above equations, sublimation term will be added to laplacianFoam. Which is nothing but the rate
solve
(
fvm::ddt(rho) + drho/sqrt(T)
);
while (simple.correctNonOrthogonal())
{
fvScalarMatrix TEqn
(
fvm::ddt(T) - fvm::laplacian(DT, T)+H*drho/(rho*S*sqrt(T))
==
fvOptions(T)
);
}
22
4.6 Results
The temperature profile at the end of the simulation with boundary conditions as 350k at right
and left sides and 300k at top and the bottom side of the body.
Density profile at the end of the simulation with the same boundary conditions and we can see
23
Chapter 5
POROUS MEDIUM
All the test cases in this project are considered for camphor. So, porous medium should
be considered but in OpenFOAM porosity model is not included for all types of flows. So
porosity should be added to the solver best suitable for the project test case flow conditions.
5.2 rhoPorousSimpleFoam
indicates. It is a steady-state solver for turbulent flow of compressible fluids with implicit or
explicit porosity treatment. The implicit porosity solver is supposed to be more robust and is
needed if the resistances are large, heavily anisotropic or not aligned with the global coordinates.
● rhoPorousSimpleFoam.C
● initConvergenceCheck.H
● convergenceCheck.H
● createFields.H
● UEqn.H
● PEqn.H
In UEqn.H the momentum equation is constructed and the source term, S i , is added by
calling the member function addResistance, taking in different number of input variables
depending on which solver is supposed to be used, explicit or implicit. The member function
24
5.3 SonicFoam
compressible gas. In sonicFoam, a non-iterative method for handling the coupling of implicitly
discretized time dependent fluid flow equations is utilized. The method, known as PISO (for
pressure implicit with splitting of operators), is based on the use of pressure and velocity as
dependent variables and is applicable to both the incompressible and compressible versions of
The sonicFoam is a solver with all the requirements for the test cases. So, it should be
modified to porous medium by adding the porosity member functions addResistance and
addViscousInertialResistance and further modifying UEqn.H and PEqn.H by adding the source
UEqn.relax();
tmp<volScalarField> trAU;
tmp<volTensorField> trTU;
pZones.addResistance(UEqn);
fvOptions.constrain(UEqn);
Where volScalarField and volTensorField are redefined according to the porosity Fields
25
if (pressureImplicitPorosity)
{
tHbyA = constrainHbyA(trTU()&UEqn.H(), U, p);
}
else
{
tHbyA = constrainHbyA(trAU()*UEqn.H(), U, p);
}
As you can see, here volVectorField is now calculated according to the pressureImplicitPorosity,
26
Chapter 6
AblationFoam
AblationFoam is the final solver for solving ablation. So, all the equations and properties
consists of all the heat conduction and sublimation equations, which should be considered and
the sonicFoam which is explained in chapter-5 adds porosity to the transient flow. So, to create
an ablation solver we need to combine both the solvers and along with that we need to add
calculations Antoine equation is used to solve the vapour pressure for varying temperature.
B
log10 p A (6.1)
C T
Where p is the vapor pressure, T is temperature and A, B and C are
component-specific constants.
Now, the equation for the rate of sublimation is modified. Where ratio term is
added, which is the vapour pressure is calculated for varying temperature and this ratio term is
included into the sublimation term in the laplacian equation. The modified equation is
27
forAll(ratio,i)
{
coeff=3.30967-1096.29/(T[i]-148.579);
ratio[i]=pow(10,coeff)/534e-5;
}
solve
(
fvm::ddt (rho) + drho*ratio/sqrt(T)
);
The energy carried by the gases released during ablation is neglected because it is
{
Solve
(
fvm::ddt (T) - fvm::laplacian (DT, T)
+ hoS*drho*ratio/(rho*s*sqrt(T))
);
}
28
Chapter 7
Test Case Simulation
In this project, the case considered for the testing of the ablation code consists of a cube of
The boundary conditions around the cube is given with initial temperature at the top and the
bottom faces are maintained at 300k and the right and the left faces are maintained at 350k.
The other main consideration taken is that the cube is made up of camphor, it is a terpenoid with
the chemical formula C10H16O. It is found in wood of the camphor laurel, a large evergreen tree
found in Asia. It is used for its scent, as an embalming fluid for the medical purposes and in this
29
Some of the physical properties of camphor at room temperature are given as
Property Value
30
Chapter 8
Results
8.1 Temperature
Initial Position of the temperature profile with a plot of temperature along the line parallel
to x axis is shown in the figure 7.1, where we can observe the temperature along the side walls is
at high with a sudden drop as the process of ablation did not take place and the peak temperature
at the side walls is due to initial boundary conditions.
31
8.2 DENSITY
The Density at initial state is uniform all over the body and when the simulation starts the
density changes more along the face with high temperatures. So, the density at right and left
32
FURTHER IMPROVEMENTS
1) To extend the solver, so that it would be capable enough to deal with pyrolysis and other
2) To extend the solver code to include heat convection, radiation and enthalpy carried away
3) To develop a solver for conservation of mass, momentum and energy, gaseous species, in
4) During heat influx, sometimes surface erosion takes place during ablation. To develop a
33
CONCLUSION
SublimationFoam was developed from the LaplacianFoam by adding sublimation energy term to
the Laplacian equation. AblationFoam was developed from the sublimationFoam by modifying
the energy equation and by adding Antoine equation for the calculations of vapor pressure for
varying temperature for accurate results. AblationFoam was used to solve the camphor problem.
Using the AblationFoam solver, temperature and density profiles variation were obtained over
time. and shown in Temperature vs time and density vs time graphs respectively. AblationFoam
solver developed in this study, can be used to solve the Porous media problems more accurately
34
References
1. Jean Lachaud* and Nagi N. Mansour "A pyrolysis and ablation toolbox based on
Project (2003)
3. Alexandre Martin, Ioana Cozmuta and Bernie Laub* "Ablation Workshop Test Case" 4th
Ablation Workshop,(2011)
to Thermodynamics in 2016
10. A.F. Charwat “Exploratory study on the Sublimation of slender camphor” Memorandum
July 1968
35
APPENDIX
while (runTime.loop())
{
Info<< "Time = " << runTime.timeName() << nl <<
endl;
double coeff;
forAll(ratio,i)
{
coeff=3.30967-1096.29/(T[i]-148.579);
ratio[i]=pow(10,coeff)/534e-5;
}
solve
(
fvm::ddt(rho) + drho*ratio/sqrt(T)
);
#include "rhoEqn.H"
while (simple.loop())
{
#include "UEqn.H"
#include "EEqn.H"
rhog = thermo.rho();
runTime.write();
}
36
Code Snippet 2: Pressure equation of AblationFoam
while (simple.correctNonOrthogonal())
{
fvScalarMatrix pEqn
(
fvm::ddt(psi, p)
+ fvm::div(phid, p)
- fvm::laplacian(rhorAUf, p)
==
fvOptions(psi, p, rhog.name())
);
pEqn.solve();
if (simple.finalNonOrthogonalIter())
{
phi = pEqn.flux();
}
}
fvVectorMatrix UEqn
(
fvm::ddt(rho, U)
+ fvm::div(phi, U)
==
fvOptions(rho, U)
);
UEqn.relax();
fvOptions.constrain(UEqn);
if (simple.momentumPredictor())
{
solve(UEqn == -fvc::grad(p));
fvOptions.correct(U);
K = 0.5*magSqr(U);
}
Code Snippet 4: Density equations for AblationFoam
37
fvScalarMatrix rhoEqn
(
fvm::ddt(rhog)
+ fvc::div(phi)
- drho/sqrt(T)
==
fvOptions(rhog)
);
fvOptions.constrain(rhoEqn);
rhoEqn.solve();
fvOptions.correct(rhog);
solve
(
fvm::ddt(T) - fvm::laplacian(DT,
T)+hoS*drho*ratio/(rho*s*sqrt(T))
);
38