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

Matt Koch mattkoch at scitex.us
Wed Mar 15 02:54:08 CET 2006


Hi Christophe,

and thank you for responding to my questions. My apologies for the slow 
answer, I have a lot on my plate right now. You had asked me to send a 
".pro" and ".msh" files so you could better understand my question about 
heat flux. The attached ".zip" file contains FOUR files (sorry, I have 
the habit of keeping things in places that appear logical to me, rather 
than putting them all in one file):

Test-2D.par -> contains parameters used in the subsequent files
Test-2D.geo -> contains the geometry definition
Test-2D.pro -> contains the problem definition (specific)
Test-2D.sol -> contains the solution definition (general)
Test-2D.msh -> contains the mesh

These describe a simple disk with a parabolic heat flux imposed on its 
top and convection and radiation (set to zero) at its top, side and 
bottom. The "Tmp-3D" post-processing defined in "Test-2D.pro" generates 
(among other things) heat fluxes on the elements (I'd rather have them 
on the nodes - how do I do that?). The "Tmp-2D" post-processing is 
supposed to generate (among other things) heat fluxes on the exact top, 
side and bottom of the disk. All fluxes are called "Flx" (by the way, 
how can I name them differently, so that I can distinguish Top, Side, 
Bottom and 2D and 3D in GMsh?) In particular, these heat fluxes ought to 
be exactly perpendicular to these surfaces, but they are not. Instead, 
they seem to be the same heat fluxes that the elements immediately 
adjacent to these surfaces exhibit, only shifted from the element center 
to the nearby surface.

I hope you can make sense of my files and explanations and also tell me 
how to make these surface heat fluxes display perpendicular, as they 
should in my opinion. By the way, I think I understand your explanation 
about the difference between "Dof{Tmp}" and "Tmp", so thank you for 
that, too.

Thanks,

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


Christophe Geuzaine wrote:
> 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
>>
>
>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: MKTest.zip
Type: application/octet-stream
Size: 17534 bytes
Desc: not available
URL: <http://www.geuz.org/pipermail/getdp/attachments/20060314/1e001cd1/attachment.zip>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mattkoch.vcf
Type: text/x-vcard
Size: 297 bytes
Desc: not available
URL: <http://www.geuz.org/pipermail/getdp/attachments/20060314/1e001cd1/attachment.vcf>