I have tested the case, with minimal modifications. Here is the sif file for reference:raback wrote: I just put a new case on the svn: MortarPoisson2D. That might give you a clue of the possibilities.
Code: Select all
! Test case for 2D nonconforming mortar elements
Header
CHECK KEYWORDS Warn
Mesh DB "." "pieces"
Include Path ""
Results Directory ""
End
Simulation
Max Output Level = 4
Coordinate System = Cartesian
Coordinate Mapping(3) = 1 2 3
Simulation Type = Steady State
Steady State Max Iterations = 1
Output Intervals = 1
Output Intervals = 0
Post File = mortar.ep
! Output File = case.result
Simulation Timing = Logical True
End
Constants
Gravity(4) = 0 -1 0 9.82
Stefan Boltzmann = 5.67e-08
Permittivity of Vacuum = 8.8542e-12
Boltzmann Constant = 1.3807e-23
Unit Charge = 1.602e-19
End
Body 1
Target Bodies(1) = 1
Name = "Body"
Equation = 1
Material = 1
Body Force = 1
End
Solver 1
Equation = Heat Equation
Procedure = "HeatSolve" "HeatSolver"
Variable = -dofs 1 Temperature
Exec Solver = Always
Stabilize = True
Bubbles = False
Lumped Mass Matrix = False
Optimize Bandwidth = True
Steady State Convergence Tolerance = 1.0e-5
Nonlinear System Convergence Tolerance = 1.0e-7
Nonlinear System Max Iterations = 100
Nonlinear System Newton After Iterations = 3
Nonlinear System Newton After Tolerance = 1.0e-3
Nonlinear System Relaxation Factor = 1.0
Linear System Solver = Iterative
Linear System Iterative Method = BiCGStabl
Linear System Max Iterations = 5000
Linear System Convergence Tolerance = 1.0e-8
Linear System Preconditioning = ILU0
Linear System ILUT Tolerance = 1.0e-3
Linear System Abort Not Converged = False
Linear System Residual Output = 20
Linear System Precondition Recompute = 1
Optimize Bandwidth = False
Apply Mortar BCs = Logical True
Export Lagrange Multiplier = Logical True
! No Explicit Constrained Matrix = Logical True
Linear System Timing = Logical True
Solver Timing = Logical True
Linear System Timing Cumulative = Logical True
Solver Timing Cumulative = Logical True
End
Solver 2
! Settings mainly for timing and verification
Exec Solver = never
Equation = SaveScalars
Procedure = "SaveData" "SaveScalars"
Filename = scalars.dat
Variable 1 = Temperature
Operator 1 = dofs
Operator 2 = partitions
Operator 3 = min
Operator 4 = max
Operator 5 = norm
Operator 6 = cpu time
Operator 7 = wall time
! File Append = Logical True
! Reduce just to one file when parallel
Parallel Reduce = Logical True
Default Parallel Operator = String max
Parallel Operator 1 = String sum
End
Solver 3
Exec Solver = after simulation
Equation = VtuOutput
Procedure = "ResultOutputSolve" "ResultOutputSolver"
Output File Name = case
Vtu Format = Logical True
Single Precision = Logical True
End
Equation 1
Name = "Heat"
Active Solvers(1) = 1
End
Material 1
Name = "Ideal"
Heat Conductivity = 1
Heat Capacity = 1
Density = 1
End
Body Force 1
Name = "Heating"
Heat Source = 1.0
Mesh Translate 1 = -4.0
End
Boundary Condition 1
Target Boundaries(5) = 1 4 5 9 10
Name = "Cold"
Temperature = 0
End
Boundary Condition 2
Target Boundaries(3) = 3 7 11
Name = "Adiabatic"
End
Boundary Condition 3
Target Boundaries(1) = 2
Name = "Mortar Left Master"
Mortar BC = Integer 4
End
Boundary Condition 4
Target Boundaries(1) = 8
Name = "Mortar Left Target"
End
Boundary Condition 5
Target Boundaries(1) = 6
Name = "Mortar Right Master"
Mortar BC = Integer 6
End
Boundary Condition 6
Target Boundaries(1) = 12
Name = "Mortar Right Target"
End
$fprintf( stderr, "TEST CASE 1\n")$
RUN
$fprintf( stderr,"END TEST CASE 1: Target NRM=0.45853175\n");
[img]result.png[/img]
I must say I do not fully understand what the case is supposed to do.
As far as I understand, we have a body with two duplicated internal boundaries which is supposed to be heated by a volumetric heat source. I don't understand what the "Mesh translate" in the Body Force is supposed to do.
In the temperature distribution, I see that only the segment in the middle gets heated. Is that the expected result?
Thank you for some additional explanations...
Matthias