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

Christophe Geuzaine cag32 at case.edu
Sun Mar 5 02:09:16 CET 2006


Matt Koch wrote:
> 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}"?

"Dof{tmp}" represents the unknown quantity--and the equations need to be 
linear in the unknowns. Here you linearize your equations by using 
functional (or "Picard") iteration, where you get the next value of the 
unknown by plugging the value obtained at the previous iteration into 
your equation (the previous value is known, and is accessed with 
"{tmp}", without "Dof").

> 
> 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"):

I don't quite understand your question. Can you send a simplified .pro 
(+.msh) file that I could run in order to understand the issue?

Cheers,

Christophe


> 
> 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
> 
> _______________________________________________
> getdp mailing list
> getdp at geuz.org
> http://www.geuz.org/mailman/listinfo/getdp
> 


-- 
Christophe Geuzaine
Assistant Professor, Case Western Reserve University, Mathematics
http://www.case.edu/artsci/math/geuzaine