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 'bottom'

  surface "middle" z=0

    layer 'top'

  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