[Getdp] ... heat conduction & radiation & fluxes ...

Matt Koch mattkoch at scitex.us
Thu Feb 9 16:21:48 CET 2006


Hello there,

I am trying to use GMsh/GetDP to solve a 2D axisymmetric heat conduction
problem with convection and radiation at its boundaries, as well as an
imposed radially varying heat flux on one of these boundaries. Furthermore,
I am using temperature dependent properties. I am making good progress, but
have two questions:

1) Convection and Radiation are implemented as follows in the Formulation:

      Galerkin {[ HTCCvn[{Tmp}] * Dof{Tmp}, {Tmp}];
                In Sfc; Integration Int; Jacobian JacSfc;} // Convection

      Galerkin {[-HTCCvn[{Tmp}] * TmpCvn[], {Tmp}];
                In Sfc; Integration Int; Jacobian JacSfc;} // Convection

      Galerkin {[ HTCRdn[{Tmp}] * ({Tmp})^4, {Tmp}];
                In Sfc; Integration Int; Jacobian JacSfc;} // Radiation

      Galerkin {[-HTCRdn[{Tmp}] * (TmpRdn[])^4, {Tmp}];
                In Sfc; Integration Int; Jacobian JacSfc;} // Radiation

Note how, following the WIKI example, I am using "Dof{Tmp}" for convection,
but am using "({Tmp})^4" for radiation. I have found that "(Dof{Tmp})^4"
does not seem to work. Could that be so? Which is the better to use in
general: "Dof{Tmp}" or "{Tmp}"?

2) In PostProcessing, I would like to show the heat fluxes on the various
boundaries. In particular, these fluxes should all be normal to the
boundaries, which is what convection and radiation are all about after all.
Yet, I find that they are NOT normal. Upon closer inspection, it seems that
the heat fluxes from the adjacent elements are simply copied onto the
boundaries, which would explain this.

How can I generate the true heat fluxes on the true boundaries, i.e. not a
copy from the adjacent elements? The PostProcessing and PostOperation I use
are as follows (Note that "Dmn" combines "Vol" and "Sfc", whereby "Sfc"
represents all the boundaries and "Vol" represents everything inside these
boundaries. Also note that there seems to be no difference in the results -
whether I use "In Vol" or "In Dmn"):

PostProcessing {
  {Name TmpPst; NameOfFormulation TmpFrm;
    Quantity {
      {Name Tmp; Value{Local{[{Tmp}]                            ; In Dmn;
Jacobian JacDmn;}}}
//      {Name Flx; Value{Local{[-TheCon[{Tmp}] * {Grad Tmp}]      ; In Vol;
Jacobian JacVol;}}}
//      {Name Abs; Value{Local{[ TheCon[{Tmp}] * Norm[{Grad Tmp}]]; In Vol;
Jacobian JacVol;}}}
      {Name Flx; Value{Local{[-TheCon[{Tmp}] * {Grad Tmp}]      ; In Dmn;
Jacobian JacDmn;}}}
      {Name Abs; Value{Local{[ TheCon[{Tmp}] * Norm[{Grad Tmp}]]; In Dmn;
Jacobian JacDmn;}}}
    }
  }
}

PostOperation {
  {Name Tmp3D; NameOfPostProcessing TmpPst;
    Operation {
      Print[Tmp, OnElementsOf Dmn, File "Tmp-3D.pos"];
      Print[Flx, OnElementsOf Dmn, File "Flx-3D.pos"];
      Print[Abs, OnElementsOf Dmn, File "Abs-3D.pos"];
    }
  }

  {Name Flx2D; NameOfPostProcessing TmpPst;
    Operation {
      Print[Flx, OnLine { {0.0,0.0    ,0.0} {Rds,0.0    ,0.0} } {25}, File
"Flx-2D_Btm.pos"];
      Print[Flx, OnLine { {Rds,0.0    ,0.0} {Rds,    Hgt,0.0} } {25}, File
"Flx-2D_BtmRgt.pos"];
      Print[Flx, OnLine { {0.0,    Hgt,0.0} {Rds,    Hgt,0.0} } {25}, File
"Flx-2D_Mdl.pos"];
      Print[Flx, OnLine { {Rds,    Hgt,0.0} {Rds,2.0*Hgt,0.0} } {25}, File
"Flx-2D_TopRgt.pos"];
      Print[Flx, OnLine { {0.0,2.0*Hgt,0.0} {Rds,2.0*Hgt,0.0} } {25}, File
"Flx-2D_Top.pos"];
    }
  }
}

By the way, GMsh/GetDP appear to be very powerful! It is a very steep
learning curve, but I think I am beginning to get the hang of it now, at
least for heat conduction problems. Thank you so very much for making this
software available under GPL! You guys are heroes!

Thanks and Regards,

Matt Koch, Ph.D., P.E.
President
Science & Technology Consultants (SciTeX)
978-726-4202 (c)
mattkoch at scitex.us
www.scitex.us