3d_surf_constraint

<< Click to Display Table of Contents >>

Navigation:  Sample Problems > Usage > Constraints >

3d_surf_constraint

Previous pageReturn to chapter overviewNext page

{ 3D_SURF_CONSTRAINT.PDE

 

 This problem demonstrates the use of CONSTRAINTS on surface integrals in 3D.

 This is a modification of problem 3D_BRICKS.PDE.

 We apply the constraint that the total flux leaving the figure must be 1.0.

 The constraint acts as an auxilliary energy sink, so we report the amount  

   of energy lost to the constraint.

 

 See the problems in the  APPLICATIONS | CONTROL folder for methods

   that control the input power to achieve the same kind of goal.

 

}  

 

title '3D Surface Constraint'  

 

select  

   regrid=off { use fixed grid to speed up demonstration }  

 

coordinates  

   cartesian3  

 

variables  

   Tp  

 

definitions  

   long = 1  

   wide = 1  

   K                   { thermal conductivity -- values supplied later }  

   Q = 10*exp(-x^2-y^2-z^2)       { Thermal source }  

 

initial values  

   Tp = 0.  

 

equations  

   Tp:  div(k*grad(Tp)) + Q = 0   { the heat equation }  

 

constraints  

   sintegral(normal(k*grad(Tp))) = 1   { force  total surface integral to 1 }  

 

extrusion  

  surface "bottom" z = -long

    layer 'lower'

  surface "middle" z=0

    layer 'upper'

  surface 'top' z= long   { divide Z into two layers }

 

boundaries  

  surface 1 value(Tp)=0   { fix bottom surface temp }  

  surface 3 value(Tp)=0   { fix top surface temp }  

 

  Region 1               { define full domain boundary in base plane }  

      layer 1 k=1         { bottom right brick }  

      layer 2 k=0.1       { top right brick }  

      start(-wide,-wide)  

        value(Tp) = 0     { fix all side temps }  

        line to (wide,-wide)   { walk outer boundary in base plane }  

          to (wide,wide)  

          to (-wide,wide)  

          to close  

 

  Region 2 "Left"         { overlay a second region in left half }  

      layer 1 k=0.2       { bottom left brick }  

      layer 2 k=0.4       { top left brick }  

      start(-wide,-wide)  

        line to (0,-wide) { walk left half boundary in base plane }  

          to (0,wide)  

          to (-wide,wide)  

          to close  

 

monitors  

  contour(Tp) on surface z=0 as "XY Temp"  

  contour(Tp) on surface x=0 as "YZ Temp"  

  contour(Tp) on surface y=0 as "ZX Temp"  

  elevation(Tp) from (-wide,0,0) to (wide,0,0) as "X-Axis Temp"  

  elevation(Tp) from (0,-wide,0) to (0,wide,0) as "Y-Axis Temp"  

  elevation(Tp) from (0,0,-long) to (0,0,long) as "Z-Axis Temp"  

 

plots  

  contour(Tp) on surface z=0 as "XY Temp"  

  contour(Tp) on surface x=0 as "YZ Temp"  

  contour(Tp) on surface y=0 as "ZX Temp"  

 

  summary

    report("Constraint Validation:")

    report(sintegral(normal(k*grad(Tp)))) as "Constrained surface integral on total outer surface"

    report(integral(Q))   as "Total interior source"

    report(integral(Q) - sintegral(normal(k*grad(Tp)))) as "Energy lost to constraint"  

 

end