<< Click to Display Table of Contents >> 3d_surf_constraint |
{ 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