[CIG-MC] varying thermal expansivity and diffusivity

tan2 tan2tan2 at gmail.com
Tue May 21 20:53:02 PDT 2013

Hi Robert,

The code can have depth-dependent thermal expansivity and heat capacity by
setting "reference_state=0". Please read the code in reference_state(),
Material_properties.c for more details.

The code doesn't have depth-dependent diffusivity, but it won't be
difficult to write. You'll need to uncomment the the codes about allocation
and input of E->refstate.thermal_conductivity in global_defs.h and
Material_properties.c first.

Then, add these lines in pg_solver(), Advection_diffusion.c

    for (m=1;m<=E->sphere.caps_per_proc;m++)
       for(el=1;el<=E->lmesh.nel;el++)    {
          int nz;
          double diff2;

          nz = ((el-1) % E->lmesh.elz) + 1;
          diff2 = diff * 0.5 * (E->refstate.thermal_conductivity[i+1] /
 (E->refstate.rho[i+1]*E->refstate.heat_capacity[i+1]) +
(E->refstate.thermal_conductivity[i] /
          pg_shape_fn(E, el, &PG, &(E->gNX[m][el]), VV, rtf, diff2, m);
          element_residual(E, el, &PG, &(E->gNX[m][el]), &(E->gDA[m][el]),
                           VV, T, Tdot,
                           Q0, Eres, rtf, diff2, E->sphere.cap[m].TB,
                           FLAGS, m);

Please test this code before using it. I can't guarantee it will work

Eh Tan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://geodynamics.org/pipermail/cig-mc/attachments/20130522/de0cb7c2/attachment.html>

More information about the CIG-MC mailing list