raback wrote:I just put a new case on the svn: MortarPoisson2D. That might give you a clue of the possibilities.

I have tested the case, with minimal modifications. Here is the sif file for reference:

- 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");

This is what I get:

[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