# 7.19. CDFEM Options

This section is referenced in the following other sections

- Simulation Setup: Level Set/CDFEM

## 7.19.1. Cdfem Options

Scope

  Aria Region

Summary

  Main block for setting CDFEM options.

Description

  This block is where CDFEM options that apply to all CDFEM interfaces in a problem (level sets, CDFEM death, CDFEM isosurfaces, and CDFEM irreversible phase change) can be set. These options include the edge degeneracy handling method, edge tolerance, prolongation model, etc.

    begin Cdfem Options

       Cdfem Dof Edge Tolerance {=} Value

       Cdfem Edge Degeneracy Handling {=} {snap_to_interface_when_quality_allows_then_snap_to_node | snap_to_node}

       Cdfem Edge Tolerance {=} Value

       Cdfem Element Size {=} {conformal | nonconformal}

       Cdfem Internal Side Stabilization [ Multiplier {=} Multiplier  ]

       Cdfem Nonconformal Adaptivity Levels {=} Value

       Cdfem Prolongation Model {=} {ale_closest_node | ale_closest_point | ale_nearest_node | ale_nearest_point | interpolation}

       Cdfem Simplex Generation Method {=} {cut_quads_by_global_identifier | cut_quads_by_largest_angle, | cut_quads_by_nearest_edge_cut}

       Constrain Cdfem To Xfem Space {=} {false | no | off | on | true | yes}

       Initial Prolongation Field For DestFieldName {=} SrcFieldName

       Length Scale For Interface Courant Limit {=} {constant | l1_norm | local} [ Value {=} ConstantLengthScaleVelue  ]

       Levelset Refinement Interval {=} interval1 interval2

       Max Edge Snap {=} value

       Nonconformal Adaptivity Target Element Count {=} Value

       Number Of Initial Decomposition Cycles {=} Value

       Perform Volume Correction After Levelset Solve {=} {false | no | off | on | true | yes}

       Preserve Sharp Features When Snapping [ Feature_Angle {=} Angle  ]

       Prolongate Additional Fields {=} FieldNames...

       Resnap Mesh Using Interface On Previous Snapped Mesh {=} {false | no | off | on | true | yes}

       Resnap Mesh Using Interpolation {=} {false | no | off | on | true | yes}

       Use Ale Prolongation For FieldName

       Use Hierarchical Dofs {=} {false | no | off | on | true | yes}

       Use Interpolation To Unsnap Mesh {=} {false | no | off | on | true | yes}

       Use Velocity To Evaluate Interface Courant Limit {=} {false | no | off | on | true | yes}

    end Cdfem Options

### 7.19.1.1. Line Commands

###### Cdfem Dof Edge Tolerance

Syntax

  Cdfem Dof Edge Tolerance {=} Value

Summary

  Specify the tolerance used to “snap” the DOFs to the edge node values on CDFEM meshes.

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
Value | real | 0.0

###### Cdfem Edge Degeneracy Handling

Syntax

  Cdfem Edge Degeneracy Handling {=} {snap_to_interface_when_quality_allows_then_snap_to_node | snap_to_node}

Summary

  Specify the strategy for handling edges that are cut very close to a node.

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
CDFEMEdgeDegeneracyHandlingType | {snap_to_interface_when_quality_allows_then_snap_to_node | snap_to_node} | GLOBAL_SNAP_TO_NODE

###### Cdfem Edge Tolerance

Syntax

  Cdfem Edge Tolerance {=} Value

Summary

  Specify the tolerance used to “snap” the CDFEM conformal interface to the nonconformal mesh.

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
Value | real | 1.0e-3

###### Cdfem Element Size

Syntax

  Cdfem Element Size {=} {conformal | nonconformal}

Summary

  Specify whether the element size is based on CONFORMAL OR NONCONFORMAL element (used for pressure stabilization).

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
CDFEMElementSize | {conformal | nonconformal} | NONCONFORMAL

###### Cdfem Internal Side Stabilization

Syntax

  Cdfem Internal Side Stabilization [ Multiplier {=} Multiplier ]

Summary

  Turn on internal face stabilization on equations that support it, optionally specifying a multiplier (default = 1.0).

###### Cdfem Nonconformal Adaptivity Levels

Syntax

  Cdfem Nonconformal Adaptivity Levels {=} Value

Summary

  Specify the number of levels of non-conformal adaptivity that should be performed before the conformal decomposition is performed.

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
Value | integer | 0

###### Cdfem Prolongation Model

Syntax

  Cdfem Prolongation Model {=} {ale_closest_node | ale_closest_point | ale_nearest_node | ale_nearest_point | interpolation}

Summary

  Specify the strategy for prolonging nodes created by conformal decomposition.

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
CDFEMEProlongationModelType | {ale_closest_node | ale_closest_point | ale_nearest_node | ale_nearest_point | interpolation} | ALE_CLOSEST_POINT

###### Cdfem Simplex Generation Method

Syntax

  Cdfem Simplex Generation Method {=} {cut_quads_by_global_identifier | cut_quads_by_largest_angle, | cut_quads_by_nearest_edge_cut}

Summary

  Specify how the quadrilateral elements (2D) or quadrilateral faces (3D) that are generated by the conformal decomposition process are subdivided into triangles. Default: For 2D: CUT_QUADS_BY_LARGEST_ANGLE, For 3D: CUT_QUADS_BY_NEAREST_EDGE_CUT

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
CDFEMSimplexGenerationMethod | {cut_quads_by_global_identifier | cut_quads_by_largest_angle, | cut_quads_by_nearest_edge_cut} | –

###### Constrain Cdfem To Xfem Space

Syntax

  Constrain Cdfem To Xfem Space {=} {false | no | off | on | true | yes}

Summary

  Specify whether the CDFEM DOFs should be constrained to the coarser XFEM discrete space. Default = FALSE.

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
constrainCDFEMtoXFEM | {false | no | off | on | true | yes} | FALSE

###### Initial Prolongation Field For

Syntax

  Initial Prolongation Field For DestFieldName {=} SrcFieldName

Summary

  Specifies that the field DestFieldName will use the field SrcFieldName for prolongation if (no prolongation node is found OR DestFieldName is not defined on the prolongation node) AND DestFieldName was not defined on the node at the last time step. For example this could be used in a foam decomposition problem where no fluid region is initially present, but one appears as the foam decomposes and the fluid field values should be populated based on the foam field values, e.g. INITIAL PROLONGATION FIELD FOR solution->pressure is solution->gas_phase_pressure

Parameter | Value | Default
--- | --- | ---
DestFieldName | string | –
{=} | {= | are | is} | –
SrcFieldName | string | –

###### Length Scale For Interface Courant Limit

Syntax

  Length Scale For Interface Courant Limit {=} {constant | l1_norm | local} [ Value {=} ConstantLengthScaleVelue ]

Summary

  Specify how the length scale is computed in the Interface CFL calculation. If CONSTANT is specified then the value is also given via VALUE=NNN. If L1_NORM is specified, the average element size across the conforming interfaces is used. Default is LOCAL, meaning that the local element size is used.

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
InterfaceCFLLengthScaleType | {constant | l1_norm | local} | –

###### Levelset Refinement Interval

Syntax

  Levelset Refinement Interval {=} interval1 interval2

Summary

  Use this command to specify the range of level set values that should be fully refined. If this is not specified, the elements that span the zero level set are refined.

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
interval | real1 real2 | –

###### Max Edge Snap

Syntax

  Max Edge Snap {=} value

Summary

  Use this command to specify the largest relative snap that should be performed on cut edges. If this is not specified, any size edge snap is allowed (default = 1.0).

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
value | real | –

###### Nonconformal Adaptivity Target Element Count

Syntax

  Nonconformal Adaptivity Target Element Count {=} Value

Summary

  Specify a target element count for the nonconformal adaptivity. This will cause the non-conformal adaptivity to use at most “CDFEM NONCONFORMAL ADAPTIVITY LEVELS” levels of refinement of a given parent element and will only refine as elements until the target element count is reached instead of refining all elements cut by the interface. At present this capability only works with analytic initial conditions in krino.

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
Value | real | 0

###### Number Of Initial Decomposition Cycles

Syntax

  Number Of Initial Decomposition Cycles {=} Value

Summary

  Specify the number of times the mesh is decomposed and the fields are (re)initialized. Repeated decomposition and initialization improves the accuracy of the interface location because the added nodes are also initialized.

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
Value | integer | 1

###### Perform Volume Correction After Levelset Solve

Syntax

  Perform Volume Correction After Levelset Solve {=} {false | no | off | on | true | yes}

Summary

  Use this command to specify whether interpolation should be used to unsnap the mesh. Default is false (in which case ALE is used in aria).

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
flag | {false | no | off | on | true | yes} | –

###### Preserve Sharp Features When Snapping

Syntax

  Preserve Sharp Features When Snapping [ Feature_Angle {=} Angle ]

Summary

  When snapping the mesh to the interface, respect sharp features, optionally specifying the FEATURE ANGLE in degrees (default = 135.).

###### Prolongate Additional Fields

Syntax

  Prolongate Additional Fields {=} FieldNames…

Summary

  Use this command to add additional fields to be prolongated in CDFEM problems (this prolongation is a nearest point projection).

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
FieldNames | string… | –

###### Resnap Mesh Using Interface On Previous Snapped Mesh

Syntax

  Resnap Mesh Using Interface On Previous Snapped Mesh {=} {false | no | off | on | true | yes}

Summary

  Use this command to specify whether mesh resnapped using interface location on previous snapped mesh. Default is false (in which case ALE unsnap or INTERPOLATION unsnap is used instead in aria).

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
flag | {false | no | off | on | true | yes} | –

###### Resnap Mesh Using Interpolation

Syntax

  Resnap Mesh Using Interpolation {=} {false | no | off | on | true | yes}

Summary

  Use this command to specify whether mesh resnapped using interpolation from the solution on the previous snapped mesh. Default is currently false (in which case ALE unsnap is used instead in aria).

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
flag | {false | no | off | on | true | yes} | –

###### Use Ale Prolongation For

Syntax

  Use Ale Prolongation For FieldName

Summary

  WARNING: Use cases for this line command are VERY rare.

  Force the use of ALE prolongation for the field specified by FieldName.

Parameter | Value | Default
--- | --- | ---
FieldName | string | –

###### Use Hierarchical Dofs

Syntax

  Use Hierarchical Dofs {=} {false | no | off | on | true | yes}

Summary

  Specify whether the CDFEM DOFs should be transformed to hierarchical unknowns. This can significantly improve the performance of iterative solvers, especially in parallel. Default = FALSE.

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
useHierarchicalDofs | {false | no | off | on | true | yes} | FALSE

###### Use Interpolation To Unsnap Mesh

Syntax

  Use Interpolation To Unsnap Mesh {=} {false | no | off | on | true | yes}

Summary

  Use this command to specify whether interpolation should be used to unsnap the mesh. Default is false (in which case ALE is used in aria).

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
flag | {false | no | off | on | true | yes} | –

###### Use Velocity To Evaluate Interface Courant Limit

Syntax

  Use Velocity To Evaluate Interface Courant Limit {=} {false | no | off | on | true | yes}

Summary

  Specify whether the Interface Courant Limit should be calculated using the velocity on the interface. If true, the CFL is calculated using the normal of solution->Velocity field on the CDFEM interfaces. If false, the CFL is calculated using the CDFEM Mesh Displacements on the CDFEM interfaces. Default = FALSE.

Parameter | Value | Default
--- | --- | ---
{=} | {= | are | is} | –
useVelocityToEvaluateInterfaceCFL | {false | no | off | on | true | yes} | FALSE