Warning: Declaration of syntax_plugin_mathpublish::handle(\$match, \$state, \$pos, &\$handler) should be compatible with DokuWiki_Syntax_Plugin::handle(\$match, \$state, \$pos, Doku_Handler \$handler) in /home/np29546/public_html/elmerice/wiki/lib/plugins/mathpublish/syntax.php on line 0

Warning: Declaration of syntax_plugin_mathpublish::render(\$mode, &\$R, \$data) should be compatible with DokuWiki_Syntax_Plugin::render(\$format, Doku_Renderer \$renderer, \$data) in /home/np29546/public_html/elmerice/wiki/lib/plugins/mathpublish/syntax.php on line 0

Warning: Cannot modify header information - headers already sent by (output started at /home/np29546/public_html/elmerice/wiki/lib/plugins/mathpublish/syntax.php:0) in /home/np29546/public_html/elmerice/wiki/inc/actions.php on line 38
solvers:normal [Elmer/Ice Wiki]

## Solver ComputeNormal

### General Informations

• Solver Fortran File: `ComputeNormal.f90`
• Solver Name: `ComputeNormal`
• Required Output Variable(s): default is `Normal Vector`
• Required Input Variable(s): None
• Optional Output Variable(s): None
• Optional Input Variable(s): None

### General Description

Solver for computing nodal normal vectors on boundaries based on an averaged value of the adjacent elements. Mind that in parallel computations that needs halo-elements, such that cross-partition information is available.

### SIF contents

The required keywords in the SIF file for this solver are:

```Solver 1
Exec Solver = "Before Simulation"
Equation = "Normal vector"
Variable = "Normal Vector"
! in 3dimensional simulations we have 3 entries
Variable DOFs = 3
!NB: does not need to actually solve a matrix
!    hence no BW optimization needed
Optimize Bandwidth = Logical False
Procedure = "ElmerIceSolvers" "ComputeNormalSolver"
! if set to True, all boundary normals would be computed by default
ComputeAll = Logical False
End

! on this boundary, we want the normals to be computed
Boundary Condition 1
ComputeNormal = Logical True
End

! on this boundary, we want to skip computation of the normals
!       (default, but overrulled by ComputeAll = Logical True)
Boundary Condition 2
ComputeNormal = Logical False
End```

### Examples

A 2D example can be found in `[ELMER_TRUNK]/elmerice/Tests/Contact`.