[Getdp] Inaccurate result after 1st time step in thermal transient simulation of a simple cube
michael.asam at infineon.com
michael.asam at infineon.com
Mon Jul 12 14:17:25 CEST 2010
Hi all,
in simulations of thermal transient problems I've observed a really strange behavior: I simulate a simple cube and apply uniformly a thermal heat source on the top. The simulation result seems to be okay on the first rough view. But when I have a closer look I see that the top temperature after the first time step is extremely non-uniform (21 .. 31 °C after an initial temperature of 0°C). It gets more uniform in further time steps but the deviation is still quite high.
The situation is the same when I delay the power-source a certain time (applying no power at the first time steps). I can see this behavior also with the "thermal problem" example out of the wiki.
I think this could be an accuracy problem. I'm simulating with the actual GetDP version 2.0.0 under windows 7. I don't apply any options for PETSc because I'm not familiar with it.
Does anybody know how to overcome this problem? I cannot imagine that such a great program is that inaccurate. Maybe I've to set just an option.
Thanks a lot in advance for your help!
Best regards,
Michael Asam
p.s. Attached you can find this simple thermal transient problem.
Cube.geo
// Gmsh project created on Mon Jul 12 11:54:37 2010
// A simple cube
length = 100.0e-6; // Length of edges [m]
Point(1) = {0, 0, 0};
Point(2) = {length, 0, 0};
Point(3) = {length, length, 0};
Point(4) = {0, length, 0};
Line(1) = {1, 2};
Line(2) = {2, 3};
Line(3) = {3, 4};
Line(4) = {4, 1};
Line Loop(5) = {4, 1, 2, 3};
Plane Surface(6) = {5};
Extrude {0, 0, length} {
Surface{6};
}
Physical Surface(30) = {28}; // Top surface
Physical Volume(31) = {1}; // Cube volume
-----------------------------------------------------------------------------------------------------------------
Cube.pro
Group {
top_surface = Region[30] ;
cube = Region[31] ;
Vol_The = Region[{cube}] ;
Sur_The = Region[{top_surface}] ;
Tot_The = Region[{Vol_The,Sur_The}];
}
Function {
// Thermal parameters for silicon
k = 87.9; // Thermal conductivity [W/(m*K)]
c = 0.852; // Thermal capacity [J/(g*K)]
rho = 2.32e6; // Density [g/m^3]
rhoc = rho * c;
area = 100.0e-6 * 100.0e-6;
// Sawtooth power pulse is applied
Pmax = 4.0; // Peak power [W]
tpower = 110.0e-6; // Length of the power pulse [s]
Flux[] = Pmax / area * (tpower - $Time)/tpower; // Power density [W/m^2]
tStart = 0; // Start time [s]
tStop = tpower; // Stop time [s]
dt = 1.0e-6; // Step size [s]
}
Jacobian {
{ Name Jac ;
Case {
{ Region Vol_The ; Jacobian Vol ; }
{ Region Sur_The ; Jacobian Sur ; }
}
}
}
Integration {
{ Name I1 ;
Case {
{ Type Gauss ;
Case {
{ GeoElement Point ; NumberOfPoints 1 ; }
{ GeoElement Line ; NumberOfPoints 3 ; }
{ GeoElement Triangle ; NumberOfPoints 4 ; }
{ GeoElement Quadrangle ; NumberOfPoints 4 ; }
{ GeoElement Tetrahedron ; NumberOfPoints 4 ; }
{ GeoElement Hexahedron ; NumberOfPoints 6 ; }
{ GeoElement Prism ; NumberOfPoints 6 ; }
}
}
}
}
}
FunctionSpace {
{ Name Hgrad_T; Type Form0;
BasisFunction {
{ Name sn; NameOfCoef Tn; Function BF_Node; Support Tot_The;
Entity NodesOf[All]; }
}
Constraint {
{ NameOfCoef Tn; EntityType NodesOf ; NameOfConstraint Sta_T; }
}
}
}
Formulation {
{ Name The_T ; Type FemEquation;
Quantity {
{ Name T; Type Local; NameOfSpace Hgrad_T; }
}
Equation {
Galerkin { [ k * Dof{d T} , {d T} ];
In Vol_The; Integration I1; Jacobian Jac; }
Galerkin { Dt [ rhoc * Dof{T} , {T} ];
In Vol_The; Integration I1; Jacobian Jac; }
Galerkin { [ -Flux[] , {T} ]; // - sign for incoming flux
In Sur_The; Integration I1; Jacobian Jac; }
}
}
}
Resolution {
{ Name Th_transient;
System {
{ Name T; NameOfFormulation The_T; }
}
Operation {
InitSolution T ; SaveSolution T ;
TimeLoopTheta {Time0 tStart ; TimeMax tStop ; DTime dt ; Theta 1.0 ;
Operation {
Generate T ; Solve T ;
SaveSolution T;
}
}
}
}
}
PostProcessing {
{ Name The; NameOfFormulation The_T;
Quantity {
{ Name T; Value{ Local{ [ {T} ] ; In Tot_The; Jacobian Jac; } } }
}
}
}
PostOperation {
{ Name Tvol ; NameOfPostProcessing The ;
Operation {
Print[ T, OnElementsOf Vol_The , File "Tvol.pos"];
}
}
{ Name Tsur ; NameOfPostProcessing The ;
Operation {
Print[ T, OnElementsOf Sur_The , File "Tsur.pos"];
}
}
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Cube.geo
Type: application/octet-stream
Size: 500 bytes
Desc: Cube.geo
URL: <http://www.geuz.org/pipermail/getdp/attachments/20100712/76d304e8/attachment.geo>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Cube.pro
Type: application/octet-stream
Size: 3005 bytes
Desc: Cube.pro
URL: <http://www.geuz.org/pipermail/getdp/attachments/20100712/76d304e8/attachment.pro>