Difference between revisions of "Thermal Calculations"

From OSUPDOCS
Jump to navigation Jump to search
 
(86 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Thermal calculations
Thermal calculations in MPM include stresses and strains induced by temperature differentials and conduction induced by thermal gradients and boundary conditions.


== Introduction ==
== Introduction ==


NairnMPM can do coupled elasticity-thermal conductivity calculations, provide thermal boundary conditions, convert various material processes into heat, and/or or can apply a constant temperature difference to all particles. In the presence of these temperature changes and heat input or output, NairnMPM calculations will find thermal stresse and tracks heat flow for <a href="#thermo">valid thermodynamics</a> or, when needed, for tracking thermodynamic quantities. This section is for NairnMPM only; see a separate <a href="feathermal.html"><code>&lt;Thermal&gt;</code></a> block when using NairnFEA.
[[NairnMPM]] can do coupled elasticity-thermal conductivity calculations, provide thermal boundary conditions, convert various material processes into heat, and/or or can apply a constant temperature difference to all particles. In the presence of these temperature changes and heat input or output, the calculations will find thermal stresses and tracks heat flow for [[#Thermodynamics Modes in MPM|valid thermodynamics]] or, when needed, for tracking thermodynamic quantities. This section is for MPM only; see separate help on [[Thermal FEA Calculations|thermal calculations]] when doing FEA calculations with [[NairnFEA]].


== Stress Free Temperature ==
== Stress Free Temperature ==


Thermal stresses are always calculated relative to the stress free temperature, which is set in the <a href="mpmheader.html#stressfreetemp">MPM header block</a> (it is set to zero by default, but some materials need it to be set to actual, absolute temperature).
Thermal strains and stresses are always calculated relative to the stress free temperature, which is set in the <tt>StressFreeTemp</tt> command. In scripted input files, the command is:
 
StressFreeTemp (temp)
 
In <tt>XML</tt> input files, the command, which must be in the [[MPM Input Files#MPM Header|<tt><MPMHeader></tt>]] block is
 
<StressFreeTemp>(temp)</StressFreeTemp>
 
where <tt>(temp)</tt> is the stress free temperature in degrees. The default value is 0. Note that some [[Material Models]] and [[Traction Laws]] depend on the stress free temperature on an absolute temperature scale and therefore calculations that use those models should always set this temperature in degrees Kelvin.
 
Note that setting initial particle temperature different than the stress free temperature will cause strains to immediately evolve toward the changed state. The net effect will be an instantaneous "impact" of temperature change that might cause undesirable dynamic effects.


== Conduction ==
== Conduction ==


The <tt>Conduction</tt> command activates thermal conductivity calculations and also activates various optionals involving heat flow in the simulations or other mechanisms that cause temperature changes. These settings can change and select the [[Thermodynamics Modes in MPM|thermodynamics mode]] of the simulation. In scripted files, the command is
The <tt>Conduction</tt> command activates thermal conductivity calculations and also activates various optionals involving heat flow in the simulations or other mechanisms that cause temperature changes. These settings can change and select the [[#Thermodynamics Modes in MPM|thermodynamics mode]] of the simulation. By default, conduction uses update methods analogous to FLIP methods used in mechanics. This update, however, sometimes results in temperature oscillations on particles within one cell. Conduction simulations with oscillations can be improved by using [[PeriodicXPIC Custom Task#Using FMPM(k) For Transport Properties|periodic FMPM(k)]] for conduction updates.
 
=== Scripted Input Commands ===
 
In scripted input files, the command is


  Conduction #1,&lt;#2&gt;,&lt;#3&gt;,...
  Conduction (isOn),<(option1)>,<(option2)>...


<p>where</p>
where


<ul>
<ul>


<li>#1 is &quot;Yes&quot; or &quot;No&quot; to include or to not include thermal conductivity calculations in the MPM analysis.
<li><tt>(isOn)</tt> is "<tt>Yes</tt>" or "<tt>No</tt>" to include or to not include thermal conductivity calculations in the MPM analysis.
</li>
</li>


</ul>
</ul>


<p>The optional parameters #2 <i>etc</i>. can activate various physical mechanisms as heat sources that may cause temperature rises and may change the <a href="#thermo">thermodynamics</a> of the analysis. The options are
<p>The optional parameters <tt>(option1)</tt>, <tt>(option2)</tt>, <i>etc</i>. can activate various physical mechanisms as heat sources that may cause temperature rises and may change the [[#Thermodynamics Modes in MPM|thermodynamics]] of the analysis. The first two are complementary options (''i.e''., <tt>Adiabatic</tt> and <tt>Isothermal</tt> are complementary options, which means only one should be used. If both are omitted, the default setting is <tt>Isothermal</tt>.) are:
 
<ul>
<li>"<tt>Adiabatic</tt>" (used to be <tt>Mechanical energy</tt>, which is still allowed) to be [[#Thermodynamics Modes in MPM|locally adiabatic]], which means any elastic thermal energy or dissipated energy in a material results in a corresponding change in the particle temperature, the  magnitude of which is determined by the material's heat capacity. This option can be used with conduction on or off. If conduction is off, the particle temperature rise will remain on the particle or the particle will be locally adiabatic. When conduction is on, the temperature rise can conduct as heat to neighboring particles meaning with time, the particle will not be locally adiabatic. The entire problem, however, will be [[#Thermodynamics Modes in MPM|globally adiabatic]] unless there are [[#Thermal Boundary Conditions|thermal boundary conditions]]. Finally, the available mechanics to generate thermal energy depend on [[#Material Support for Thermal Energy|material model being used]].</li>
 
<li>"<tt>Isothermal</tt>" to be [[#Thermodynamics Modes in MPM|locally isothermal]], which means the material response will never cause a temperature rise. Implicitly all dissipated energy is expelled to the exterior. The problem will be [[#Thermodynamics Modes in MPM|globally isothermal]] unless there are [[#Thermal Boundary Conditions|thermal boundary conditions]].</li>
 
</ul>
 
The following options activate conversion of various physical mechanisms into heat. Note that these mechanisms inject heat into the problem though heat flux term in the conduction equation. In other words, they have no affect unless conduction is activated by setting <tt>(isOn)</tt> is &quot;Yes&quot;:


<ul>
<ul>
<li><code>&quot;Adiabatic&quot;</code> (used to <code>&quot;Mechanical energy&quot;</code>, which is still allowed) to be locally adiabatic, which means any dissipated energy in a material results in a heat source that causes a temperature rise. This option can be used with conduction on or off. If conduction is off, the particle temperature will rise and will remain on the particle. When conduction is on, the heat may transfer to neighboring particles meaning with time, the particle will not be locally adiabatic. The entire problem, however, will be globally adiabatic unless there are thermal boundary conditions.</li>
 
<li><code>&quot;Isothermal&quot;</code> to be locally isothermal, which means the material response will never cause a temperature rise. Implicitly all dissipated energy is expelled to the exterior. The problem will be globally isothermal unless there are thermal boundary conditions.</li>
<li>"<tt>Crack Tips</tt>" to have cracks convert total energy released into heat at the crack tips. For crack-tip heating to work correctly, you have to set the crack thickness to define its thickness. </li>
<li><code>&quot;Crack tips&quot;</code> to have cracks convert total energy released into heat at the crack tips. For crack-tip heating to work correctly, you have to set the <a href="crackthickness.html">crack thickness</a> to define its thickness. This option has no affect unless #1 is &quot;Yes.&quot; (<i>i.e.</i>, the temperature rises results for heat source term in the conduction equations).</li>
 
<li>"<tt>Friction</tt>" to convert work of [[Friction|frictional sliding]] between materials in [[Multimaterial MPM|multimaterial mode]] into heat.</li>
 
<li>"<tt>Crack Friction</tt>" to convert work of [[Friction|frictional sliding]] between [[Defining Cracks|crack surfaces]] into heat.</li>
 
</ul>
</ul>


=== XML Input Commands ===


In <tt>XML</tt> input files, conduction is activated in a <tt><Thermal></tt> block:
In <tt>XML</tt> input files, conduction is activated with a <tt><Thermal></tt> block:


<pre>
<pre>
&lt;Thermal&gt;
&lt;Thermal&gt;
   &lt;Conduction/&gt;
   &lt;Conduction/&gt;
  &lt;EnergyCoupling/&gt;
   &lt;CrackTipHeating/&gt;
   &lt;CrackTipHeating/&gt;
   &lt;EnergyCoupling/&gt;
   &lt;CrackContactHeating/&gt;
  &lt;ContactHeating/&gt;
   &lt;Isothermal time="5" start="2"&gt;-200&lt;/Isothermal&gt;
   &lt;Isothermal time="5" start="2"&gt;-200&lt;/Isothermal&gt;
&lt;/Thermal&gt;
&lt;/Thermal&gt;
</pre>
</pre>


<p>where</p>
where


<dl>
; <Conduction>
: This tag activates condition calculations. Its omission turns conduction off. When conducton is activated, you should set all needed [[#Thermal Material Properties|thermal material properties]].
; <EnergyCoupling/>
: The presence of this tag is equivalent to the <tt>"Adiabatic"</tt> option while its omission is equivalent to the <tt>"Isothermal"</tt> option (see [[#Scripted Input Commands|above]]).
; <CrackTipHeating/>
: The presence of this tag is equivalent to the <tt>"Crack Tips"</tt> option (see [[#Scripted Input Commands|above]]).
; <CrackContactHeating/>
: The presence of this tag is equivalent to the <tt>"Crack Friction"</tt> option (see [[#Scripted Input Commands|above]]).
; <ContactHeating/>
: The presence of this tag is equivalent to the <tt>"Friction"</tt> option (see [[#Scripted Input Commands|above]]).
; <Isothermal>
: This command sets up a [[#Thermal Ramp|thermal ramp]] (see next section).


<dt>&lt;Conduction/&gt;
=== Material Support for Thermal Energy ===
<dd>This tag specifies that the calculation should do coupled thermal conduction analysis. When diffusion is activated, you can set <a href="definematl.html">material conductivity, heat capacity, and thermal expansion constants</a>, initial <a href="definempm.html#sec2">particle temperatures</a>, and impose <a href="dispbc.html#temp">temperature</a> or <a href="mpmloads.html#hflux">heat flux</a> boundary conditions.
</dd>


<dt>&lt;CrackTipHeating/&gt;
Mechanics calculations of thermal conduction are coupled phenomena, but the degree of coupling depends on the analysis method. The two ways they are coupled are:
<dd>This tag will cause energy released by crack growth to be released as a heat source into a conduction analysis. This command has no affect unless the <code>&lt;Conduction/&gt;</code> tag is present which means the analysis will be doing coupled thermal conduction calculations. When using this command, you must be sure to s<a href="cracks.html">et the crack thickness</a> to the appropriate value. Currently 100% of the fracture energy is converted to heat (there may be an option in the future to control the fraction of energy released as heat).
</dd>


<dt>&lt;EnergyCoupling/&gt;
# Thermal expansion - a change in temperature causes most material the develop thermal strains that will change the particle stress.
<dd>This tag will cause energy dissipated by a <a href="definematl.html">material's</a> constitutive low to be converted to a heat source that will increase temperature. In other words, the particles will be locally adiabatic. This option can be used with or without conduction. When there is no conduction, all temperature rise will remain on the particle.<br>
# Thermal energy - various mechanical process can generate thermal energy that changes the particle temperature
&nbsp;&nbsp;&nbsp;&nbsp;If this option is omitted, the simulation will be locally isothermal, which means the material response will not cause any change in temperature. Implicitly all heat is expelled from the body. The changes in heat energy depend on the type of material. Refer to each <a href="definematl.html">material</a> for more details.
</dd>


<dt>&lt;Isothermal&gt;
Most analytical methods (especially for elastic solids) include thermal expansion, but ignore thermal energy. This approximation is done because it decouples the thermal conduction equation for the mechanics equation and thereby simplifies the analysis. It is a good approximation for elastic solids because small-stain, elastic deformation does not generate much thermal energy, But when modeling large strains or modeling [[Material Models|materials]] that generate or dissipate more thermal energy (plastic or viscoelastic materials, liquids, and gases), thermal analyses should always be coupled, which involves adding heat source terms to the thermal conduction equation. Furthermore, when solving the two equations simultaneously by numerical methods, there is virtually no performance penalty to including all coupling terms (just the slight work to calculate the thermal energy).
<dd>See [[Isothermal Ramp]].</dd>


</dl>
Nevertheless, proper modeling of coupled mechanical and thermal problems requires that the [[Material Models|material model]] implemented in <tt>NairnMPM</tt> correctly calculates all thermal energy terms. That calculation is not part of generic MPM because it depends on the [[Material Models|material model]] being used. The following lists explain which materials support various types of thermal coupling. Materials not in these lists may or may support these features as could be checked by looking at source code.
 
* Thermal Expansion - All materials
* Dilational Energy - By thermodynamics, all materials heat when compressed and cool when expanded (gases a lot; solids very little). The follow materials support dilational energy:
** [[Isotropic Material|Isotropic]]
** [[Isotropic, Elastic-Plastic Material|IsoPlasticity]]
** [[Isotropic Softening Material|IsoSoftening]]
** [[Isotropic Plastic Softening Material|IsoPlasticSoftening]]
** [[Viscoelastic Material|Viscoelastic]]
** [[Mooney Material|Mooney]]
** [[Neo-Hookean Material|Neohookean]]
** [[Isotropic, Hyperelastic-Plastic Material|HEIsotropic]]
** [[Isotropic, Hyperelastic-Plastic Mie-Gr&#252;neisen Material|HEMGEOSMaterial]]
** [[Tait Liquid Material|TaitLiquid]]
** [[Ideal Gas Material|IdealGas]] (heat of expansion and compression, which is analog of elastic thermal energy in solids)
* Dissipated Energy - Some materials dissipate energy and calculations can cause that energy to be converted into heat. The following materials calculate their dissipated energy:
** [[Isotropic, Elastic-Plastic Material|IsoPlasticity]] (from plastic energy)
** [[Anisotropic, Elastic-Plastic Material|HillPlastic]] (from plastic energy)
** [[Viscoelastic Material|Viscoelastic]] (from viscoelastic dissipation and [[Common Material Properties#Artificial Viscosity|artificial viscosity]])
** [[Isotropic Softening Material|IsoSoftening]]
** [[Isotropic Plastic Softening Material|IsoPlasticSoftening]]
** [[Transversely Isotropic Softening Material|TransIsoSoftening]]
** [[Mooney Material|Mooney]] (from [[Common Material Properties#Artificial Viscosity|artificial viscosity]])
** [[Neo-Hookean Material|Neohookean]] (from [[Common Material Properties#Artificial Viscosity|artificial viscosity]])
** [[Isotropic, Hyperelastic-Plastic Material|HEIsotropic]] (from plastic energy and [[Common Material Properties#Artificial Viscosity|artificial viscosity]])
** [[Isotropic, Hyperelastic-Plastic Mie-Gr&#252;neisen Material|HEMGEOSMaterial]] (from plastic energy and [[Common Material Properties#Artificial Viscosity|artificial viscosity]])
** [[Tait Liquid Material|TaitLiquid]] (from shear work)


== Thermal Ramp ==
== Thermal Ramp ==


This tag specifies the constant temperature difference to apply to each particle. It is expressed as the difference between the stress free temperature and the isothermal temperature in degrees Celsius. The optional <code>time</code> attribute allows the simulation to ramp the temperature difference from zero to the difference supplied in the <code>&lt;Isothermal&gt;</code> value of any time span. Enter the total time (in ms) to reach the final temperature difference. The optional <code>start</code> attribute allows the ramp to start at any time (in ms); if not supplied, the ramp will start at time zero.
To avoid thermal shocks, it is usually better to apply initial thermal fields using a [[PropertyRamp Custom Task|PropertyRamp custom task]].


Note that rather than ramping up an isothermal temperature change, it is also possible to instantaneous supply a temperature to all particles at the start of the calculations. An instantaneous temperature can be applied either by using an <code>Isothermal</code> command with the ramp time less than zero (or omitted) or by specifying particle temperature with a <code>temp</code> attribute when <a href="definempm.html">creating material points</a>. An instantaneous temperature change is analogous to impact loading and may cause stress and strain oscillations. It is usually better to ramp up particle temperature difference.
The scripting commands <tt>ThermalRamp</tt> and <tt>RampStart</tt> and the <tt>XML</tt> command <tt>&lt;Isothermal&gt;</tt> have been deleted and replaced by the new [[PropertyRamp Custom Task|PropertyRamp custom task]].


<p>The <code>ThermalRamp</code> command lets you apply uniform temperature difference to all particles and to ramp up the temperature difference over any time intervel. Its format is:</p>
== Thermodynamics Modes in MPM ==
<pre>ThermalRamp #1,&lt;#2&gt;,&lt;#3&gt;
</pre>
<p>where</p>
 
<ul>
 
<li>#1 is the temperature difference to apply to all particles in degrees C (or K).</li>
 
<li>#2 allows the simulation to ramp the temperature difference from zero to the difference supplied in #1. Enter the total time (in ms) to reach the final temperature difference. Enter a time less than zero to apply the entire temperature difference on the first time step. The default is less than zero or to ramp in one step. It is usually better to ramp the temperature difference.</li>
 
<li>#3 allows you to specify a stress free or reference temperature. This parameter can alternatively be specified in a separate <a href="stressfreetemp.html">StressFreeTemp Command</a>. The default value is 0.
</li>
 
</ul>
 
 
==== Notes ====
 
<ol>
 
<li>You can use the <a href="rampstart.html">RampStart</a> command to set the time that the thermal ramp starts.
</li>
 
<li>Thermal ramps can be used for residual stress calculations. Because they create uniform temperature they do not lead to any <a href="conduction.html">conduction</a>. Thus a ramp can be used without doing conduction calculations or it can be used in combination with conduction calculations and other <a href="temperature.html">temperature boundary conditions</a>.</li>


<li>The <code>ThermalRamp</code> command is only allowed for <a href="analysis.html">MPM analyses</a>.</li>
By using settings for [[#Conduction|conduction calculations]] along with optional [[#Thermal Boundary Conditions|thermal boundary conditions]], [[NairnMPM]] can simulate various thermodynamics conditions, and it is important to be aware of the thermodynamics that is being modeled. The two basic thermodynamics modes refer to instantaneous temperature change on an isolated particle and are the  "Adiabatic" and "Isothermal" modes (set using a [[#Conduction|conduction option]]). Formally, the "Adiabatic" model is modeling the full dynamic problem while "Isothermal" mode is used to emulate quasi-static simulations. These modes control how each particle handles localized energy flow. The full thermodynamics, however, also depends on interactions between particles through conduction and on exchange of heat with the exterior through boundary conditions. These options are:
 
</ol>


== Thermodynamics Modes in MPM ==
# [[#Conduction|Conduction]]: when conduction is on, heat can flow between particles; when it is off no heat flows between particles.
#  [[#Thermal Boundary Conditions|Thermal Boundary Conditions]]: an "Isolated" system means there are no [[#Thermal Boundary Conditions|thermal boundary conditions]] that can heat or change temperature of particles; a "Nonisolated" system has [[#Thermal Boundary Conditions|thermal boundary conditions]]


<p>By using settings in the &lt;Thermal&gt; section along with optional <a href="dispbc.html#temp">thermal boundary conditions</a>, NairnMPM can do calculations involving heat. In such calculations, it is important to be aware of the thermodynamics of the deformation. The following grid explains the various NairnMPM modes involving heat and describes the behavior of some thermodynamics quantities. In the table <b>dq</b> is cumulative heat flow on a single particle, <b>dQ</b> is heat flow for all particles, <b>dS</b> is total entropy change, and <b>dT</b> is change in average temperature. An &quot;Isolated&quot; system means there are no boundary conditions that can heat or change temperature of particles; a &quot;Nonisolated&quot; has thermal boundary conditions. The &quot;Adiabatic&quot; column is when <code>&lt;EnergyCoupling/&gt;</code> is used; the &quot;Isothermal&quot; is when it is not used.</p>
The following grid explains all combinations of these settings and describes the behavior of some thermodynamics quantities. In the table <b>dq</b> is cumulative heat flow on a single particle, <b>dQ</b> is sum of heat flow for all particles, <b>dS</b> is total entropy change, and <b>dT</b> is change in average temperature.


<table border="1" cellpadding="2" cellspacing="0" width="90%" align="center">
<table border="1" cellpadding="2" cellspacing="0" width="90%" align="center">
<tr><th></th><th></th><th colspan="4">Adiabatic</th><th colspan="4">Isothermal</th>
<tr><th></th><th></th><th colspan="4">Adiabatic Mode</th><th colspan="4">Isothermal Mode</th>
</tr>
</tr>
<tr><th>System</th><th>Conduction</th><th>dq</th><th>dS</th><th>dQ</th><th>dT</th>
<tr><th>System (Thermal BCs)</th><th>Conduction (Particles)</th><th>dq</th><th>dQ</th><th>dS</th><th>dT</th>
<th>dq</th><th>dS</th><th>dQ</th><th>dT</th>
<th>dq</th><th>dQ</th><th>dS</th><th>dT</th>
</tr>
</tr>
<tr><th>Isolated</th><th>No</th>
<tr><th>Isolated</th><th>No (Isolated)</th>
<td align="center">0<sup>1</sup></td><td align="center">0</td><td align="center">0</td><td align="center">≠0</td>
<td align="center">0<sup>1</sup></td><td align="center">0</td><td align="center">0</td><td align="center">≠0</td>
<td align="center">≠0</td><td align="center">≠0</td><td align="center">≠0</td><td align="center">0</td>
<td align="center">≠0</td><td align="center">≠0</td><td align="center">≠0</td><td align="center">0</td>
</tr>
</tr>
<tr><th>Isolated</th><th>Yes</th>
<tr><th>Isolated</th><th>Yes (Nonisolated)</th>
<td align="center">≠0<sup>1</sup></td><td align="center">0</td><td align="center">≥0</td><td align="center">≠0</td>
<td align="center">≠0<sup>1</sup></td><td align="center">0</td><td align="center">≥0<sup>2</sup></td><td align="center">≠0</td>
<td align="center">≠0<sup>3</sup></td><td align="center">≠0<sup>3</sup></td>
<td align="center">≠0<sup>3</sup></td><td align="center">≠0<sup>3</sup></td>
<td align="center">≠0<sup>3</sup></td><td align="center">0<sup>3</sup></td>
<td align="center">≠0<sup>3</sup></td><td align="center">0<sup>3</sup></td>
</tr>
</tr>
<tr><th>Nonisolated</th><th>No</th>
<tr><th>Nonisolated</th><th>No (Isolated)</th>
<td rowspan="2" align="center">≠0</td><td  rowspan="2" align="center">≠0</td>
<td rowspan="2" align="center">≠0</td><td  rowspan="2" align="center">≠0</td>
<td  rowspan="2" align="center">≠0</td><td  rowspan="2" align="center">≠0<sup>4</sup></td>
<td  rowspan="2" align="center">≠0</td><td  rowspan="2" align="center">≠0<sup>4</sup></td>
Line 129: Line 162:
<td  rowspan="2" align="center">≠0</td><td  rowspan="2" align="center">≠0<sup>4</sup></td>
<td  rowspan="2" align="center">≠0</td><td  rowspan="2" align="center">≠0<sup>4</sup></td>
</tr>
</tr>
<tr><th>Nonisolated</th><th>Yes</th></tr>
<tr><th>Nonisolated</th><th>Yes (Nonisolated)</th></tr>
</table>
</table>


<ol>
<ol>
<li>If any particles start with a temperature that is different then the stress free temperature, the first time step will add dq = CV (dT<sub>i</sub> −dT<sub>i</sub>) to the particle heat energy. The above conditions will hold thereafter, but a constant will be added to dS and dQ.</li>
<li>If any particles start with a temperature that is different then the stress free temperature, the first time step will add dq = C<sub>V</sub> (dT<sub>i</sub> −dT<sub>SF</sub>) to the particle heat energy. The above conditions will hold thereafter, but a constant will be added to dS and dQ.</li>


<li>The dq will be due to conduction only and entropy will increase because conduction is irreversible.</li>
<li>The dq will be due to conduction only and entropy will increase because conduction is irreversible.</li>
Line 142: Line 175:


</ol>
</ol>
=== Tracking Thermodynamic Quantities ===
In any thermodynamics mode, you can easily track various thermodynamics quantities:
* Total entropy (S) in a [[MPM Global Archiving Options|global archive]].
* Temperature (T) in a [[MPM Global Archiving Options|global archive]] and on [[MPM Archiving Options|each particle]].
* Work Energy (w) in a [[MPM Global Archiving Options|global archive]] and on [[MPM Archiving Options|each particle]] where: <math>w = \int \sigma\cdot d\varepsilon</math>
* Heat (q) in a [[MPM Global Archiving Options|global archive]] and on [[MPM Archiving Options|each particle]].
* Total Internal Energy (U = w + q) in a [[MPM Global Archiving Options|global archive]].
* Total Helmholz Free Energy (A = U - TS) in a [[MPM Global Archiving Options|global archive]].
* Strain Energy (W) in a [[MPM Global Archiving Options|global archive]] and on [[MPM Archiving Options|each particle]] where: <math>W = \int \sigma\cdot d(\varepsilon-\varepsilon_{res})</math>
* Kinetic Energy (K) in a [[MPM Global Archiving Options|global archive]] (with "Grid Kinetic Energy" being the preferred option for archiving)
== Thermal Boundary Conditions ==
The possible thermal boundary conditions are:
* You can set [[Setting Velocity and Transport Values#Temperature Conditions|temperature on the grid]].
* [[Rigid Material|Rigid particles]] can provide moving temperature boundary conditions.
* You can set a [[Setting Forces and Fluxes#Heat Flux Conditions|heat flux on particle surfaces]].
* A [[#Thermal Ramp|thermal ramp]] can ramp of the temperature of all particles
== Thermal Material Properties ==
The results of thermal calculations will depend on the thermal properties of the materials in the model, which should all be set when doing such calculations. The relevant thermal properties are thermal expansion coefficients, thermal conductivity, and heat capacity. See the [[Material Models|material definitions]] for how to set these properties. A few [[Material Models|material models]] and [[Hardening Laws|hardening laws]] also depend on thermal transitions, such as a melting point, and on the [[#Stress Free Temperature|stress free temperature]].

Latest revision as of 20:17, 30 January 2023

Thermal calculations in MPM include stresses and strains induced by temperature differentials and conduction induced by thermal gradients and boundary conditions.

Introduction

NairnMPM can do coupled elasticity-thermal conductivity calculations, provide thermal boundary conditions, convert various material processes into heat, and/or or can apply a constant temperature difference to all particles. In the presence of these temperature changes and heat input or output, the calculations will find thermal stresses and tracks heat flow for valid thermodynamics or, when needed, for tracking thermodynamic quantities. This section is for MPM only; see separate help on thermal calculations when doing FEA calculations with NairnFEA.

Stress Free Temperature

Thermal strains and stresses are always calculated relative to the stress free temperature, which is set in the StressFreeTemp command. In scripted input files, the command is:

StressFreeTemp (temp)

In XML input files, the command, which must be in the <MPMHeader> block is

<StressFreeTemp>(temp)</StressFreeTemp>

where (temp) is the stress free temperature in degrees. The default value is 0. Note that some Material Models and Traction Laws depend on the stress free temperature on an absolute temperature scale and therefore calculations that use those models should always set this temperature in degrees Kelvin.

Note that setting initial particle temperature different than the stress free temperature will cause strains to immediately evolve toward the changed state. The net effect will be an instantaneous "impact" of temperature change that might cause undesirable dynamic effects.

Conduction

The Conduction command activates thermal conductivity calculations and also activates various optionals involving heat flow in the simulations or other mechanisms that cause temperature changes. These settings can change and select the thermodynamics mode of the simulation. By default, conduction uses update methods analogous to FLIP methods used in mechanics. This update, however, sometimes results in temperature oscillations on particles within one cell. Conduction simulations with oscillations can be improved by using periodic FMPM(k) for conduction updates.

Scripted Input Commands

In scripted input files, the command is

Conduction (isOn),<(option1)>,<(option2)>...

where

  • (isOn) is "Yes" or "No" to include or to not include thermal conductivity calculations in the MPM analysis.

The optional parameters (option1), (option2), etc. can activate various physical mechanisms as heat sources that may cause temperature rises and may change the thermodynamics of the analysis. The first two are complementary options (i.e., Adiabatic and Isothermal are complementary options, which means only one should be used. If both are omitted, the default setting is Isothermal.) are:

  • "Adiabatic" (used to be Mechanical energy, which is still allowed) to be locally adiabatic, which means any elastic thermal energy or dissipated energy in a material results in a corresponding change in the particle temperature, the magnitude of which is determined by the material's heat capacity. This option can be used with conduction on or off. If conduction is off, the particle temperature rise will remain on the particle or the particle will be locally adiabatic. When conduction is on, the temperature rise can conduct as heat to neighboring particles meaning with time, the particle will not be locally adiabatic. The entire problem, however, will be globally adiabatic unless there are thermal boundary conditions. Finally, the available mechanics to generate thermal energy depend on material model being used.
  • "Isothermal" to be locally isothermal, which means the material response will never cause a temperature rise. Implicitly all dissipated energy is expelled to the exterior. The problem will be globally isothermal unless there are thermal boundary conditions.

The following options activate conversion of various physical mechanisms into heat. Note that these mechanisms inject heat into the problem though heat flux term in the conduction equation. In other words, they have no affect unless conduction is activated by setting (isOn) is "Yes":

  • "Crack Tips" to have cracks convert total energy released into heat at the crack tips. For crack-tip heating to work correctly, you have to set the crack thickness to define its thickness.
  • "Friction" to convert work of frictional sliding between materials in multimaterial mode into heat.
  • "Crack Friction" to convert work of frictional sliding between crack surfaces into heat.

XML Input Commands

In XML input files, conduction is activated with a <Thermal> block:

<Thermal>
  <Conduction/>
  <EnergyCoupling/>
  <CrackTipHeating/>
  <CrackContactHeating/>
  <ContactHeating/>
  <Isothermal time="5" start="2">-200</Isothermal>
</Thermal>

where

<Conduction>
This tag activates condition calculations. Its omission turns conduction off. When conducton is activated, you should set all needed thermal material properties.
<EnergyCoupling/>
The presence of this tag is equivalent to the "Adiabatic" option while its omission is equivalent to the "Isothermal" option (see above).
<CrackTipHeating/>
The presence of this tag is equivalent to the "Crack Tips" option (see above).
<CrackContactHeating/>
The presence of this tag is equivalent to the "Crack Friction" option (see above).
<ContactHeating/>
The presence of this tag is equivalent to the "Friction" option (see above).
<Isothermal>
This command sets up a thermal ramp (see next section).

Material Support for Thermal Energy

Mechanics calculations of thermal conduction are coupled phenomena, but the degree of coupling depends on the analysis method. The two ways they are coupled are:

  1. Thermal expansion - a change in temperature causes most material the develop thermal strains that will change the particle stress.
  2. Thermal energy - various mechanical process can generate thermal energy that changes the particle temperature

Most analytical methods (especially for elastic solids) include thermal expansion, but ignore thermal energy. This approximation is done because it decouples the thermal conduction equation for the mechanics equation and thereby simplifies the analysis. It is a good approximation for elastic solids because small-stain, elastic deformation does not generate much thermal energy, But when modeling large strains or modeling materials that generate or dissipate more thermal energy (plastic or viscoelastic materials, liquids, and gases), thermal analyses should always be coupled, which involves adding heat source terms to the thermal conduction equation. Furthermore, when solving the two equations simultaneously by numerical methods, there is virtually no performance penalty to including all coupling terms (just the slight work to calculate the thermal energy).

Nevertheless, proper modeling of coupled mechanical and thermal problems requires that the material model implemented in NairnMPM correctly calculates all thermal energy terms. That calculation is not part of generic MPM because it depends on the material model being used. The following lists explain which materials support various types of thermal coupling. Materials not in these lists may or may support these features as could be checked by looking at source code.

Thermal Ramp

To avoid thermal shocks, it is usually better to apply initial thermal fields using a PropertyRamp custom task.

The scripting commands ThermalRamp and RampStart and the XML command <Isothermal> have been deleted and replaced by the new PropertyRamp custom task.

Thermodynamics Modes in MPM

By using settings for conduction calculations along with optional thermal boundary conditions, NairnMPM can simulate various thermodynamics conditions, and it is important to be aware of the thermodynamics that is being modeled. The two basic thermodynamics modes refer to instantaneous temperature change on an isolated particle and are the "Adiabatic" and "Isothermal" modes (set using a conduction option). Formally, the "Adiabatic" model is modeling the full dynamic problem while "Isothermal" mode is used to emulate quasi-static simulations. These modes control how each particle handles localized energy flow. The full thermodynamics, however, also depends on interactions between particles through conduction and on exchange of heat with the exterior through boundary conditions. These options are:

  1. Conduction: when conduction is on, heat can flow between particles; when it is off no heat flows between particles.
  2. Thermal Boundary Conditions: an "Isolated" system means there are no thermal boundary conditions that can heat or change temperature of particles; a "Nonisolated" system has thermal boundary conditions

The following grid explains all combinations of these settings and describes the behavior of some thermodynamics quantities. In the table dq is cumulative heat flow on a single particle, dQ is sum of heat flow for all particles, dS is total entropy change, and dT is change in average temperature.

Adiabatic ModeIsothermal Mode
System (Thermal BCs)Conduction (Particles)dqdQdSdT dqdQdSdT
IsolatedNo (Isolated) 0100≠0 ≠0≠0≠00
IsolatedYes (Nonisolated) ≠010≥02≠0 ≠03≠03 ≠0303
NonisolatedNo (Isolated) ≠0≠0 ≠0≠04 ≠0≠0 ≠0≠04
NonisolatedYes (Nonisolated)
  1. If any particles start with a temperature that is different then the stress free temperature, the first time step will add dq = CV (dTi −dTSF) to the particle heat energy. The above conditions will hold thereafter, but a constant will be added to dS and dQ.
  2. The dq will be due to conduction only and entropy will increase because conduction is irreversible.
  3. This mode is identical to system isolated with no conduction if the initial temperature of all particles is equal to the stress-free temperature. Thus, such a simulation should turn off conduction for efficiency because it is not needed.
  4. When conduction is "No", the only possible thermal boundary condition is a thermal ramp that applies uniform temperature change to all particles. If there is no thermal ramp, then the system is isolated and refer to first mode instead.

Tracking Thermodynamic Quantities

In any thermodynamics mode, you can easily track various thermodynamics quantities:

Thermal Boundary Conditions

The possible thermal boundary conditions are:

Thermal Material Properties

The results of thermal calculations will depend on the thermal properties of the materials in the model, which should all be set when doing such calculations. The relevant thermal properties are thermal expansion coefficients, thermal conductivity, and heat capacity. See the material definitions for how to set these properties. A few material models and hardening laws also depend on thermal transitions, such as a melting point, and on the stress free temperature.