Skip to content

Adaptive context

Knut Morten Okstad edited this page Jun 5, 2019 · 2 revisions
  <adaptive>
    <maxstep>3</maxstep>
    <beta type="truebeta">7</beta>
    <maxdof>10000</maxdof>
    <errtol>0.000001</errtol>
    <knot_mult>1</knot_mult>
    <scheme>isotropic_function</scheme>
    <use_norm>1</use_norm>
    <use_sub_norm>1</use_sub_norm>
    <store_eps_mesh/>
    <test_linear_independence/>
  </adaptive>

The <adaptive> context is used for everything related to adaptive simulations. It can have the following sub-contexts:

maxstep

Termination criterion. The maximum number of adaptive steps to perform.

Attributes: None

Value: The maximum number of steps to perform.

Example:

<maxstep>10</maxstep>

maxdof

Termination criterion. The maximum number of degrees of freedom to allow in model.

Attributes: None

Value: The number of degrees of freedom.

Example:

<maxdof>10000</maxdof>

errtol

Termination criterion. The error tolerance measured in percentage.

Attributes: None

Value: The error tolerance.

Example:

<errtol>0.00001</errtol>

beta

How many elements shall be refined in each iteration. Measured in percentage.

Attributes: type - How to interpret the specified β value. There are 7 variations on this:

  • "none" : Tags the β percent elements with largest error and refines these as according to the selected scheme (this is the default).
  • "threshold" : Tags all elements with error larger than β times max{err} and refines these according to the selected scheme (β<100).
  • "maximum" : Same as "threshold".
  • "average" : Tags all elements with error larger than beta times avg{err} and refines these according to the selected scheme.
  • "minimum" : Tags all elements with error larger than beta times min{err} and refines these according to the selected scheme (β>100).
  • "truebeta" : The growth rate of the number of basis functions in the solution space measured in percentage. That is, if you have n DOFs at iteration i, you will have (at least) n(1+β/100) functions at iteration i+1. Note that β is not the number of elements to be refined as this makes convergence plots impossible to compare since the ratio between DOFs and elements is very dependent on the refinement scheme and knot multiplicity.
  • "dorfel" : Use Dorfel's strategy.
  • "symmetrized" : Same as "none" except symmetry is attempted enforced by selecting all functions that have the same error as the last function that was initially selected.

Value: The percentage β.

Example:

<beta>10</beta>
<beta type="truebeta">10</beta>
<beta type="threshold">50</beta>
<beta type="average">100</beta>
<beta type="minimum">200</beta>

knot_mult

Knot multiplicity. All inserted mesh lines will have this multiplicity. The continuity across mesh lines is given as , where p is the polynomial degree of the spline and m is the multiplicity of the line.

Attributes: None

Value: The mesh line multiplicity.

Example:

<knot_mult>1</knot_mult>

store_mesh

Output the mesh to files for inspection or publication. Up to 5 files can be stored for each adaptive step.

Attribute: type - defines which file(s) to write for each adaptive step. The value is considered as a binary number where each 2-based digit have the following interpretation:

  • 1 - Write NAME_XXX.lr containing the entire model (all patches in the same file). This is the default value.
  • 2 - Write PATCH_param_NAME_XXX.eps, one postscript file for each patch with all mesh lines (elements) in the parametric space
  • 4 - Write PATCH_physical_NAME_XXX.eps, one postscript file for each patch with all mesh lines (elements) mapped to the physical space
  • 8 - Write PATCH_param_dot_NAME_XXX.eps, one postscript file for each patch with mesh lines in parametric space, and each basis function marked with a yellow dot at its Greville point
  • 16 - Write PATCH_physical_dot_NAME_XXX.eps, one postscript file for each patch with mesh lines in physical space and each control point marked with a grey dot at its coordinates

In the above, XXX is the adaptive step number and PATCH is the one-based patch index. For single-patch models, the PATCH prefix is omitted.

Value: The base name of the the files (NAME above).

Example:

<store_mesh>domain</store_mesh>
<store_mesh type="16">domain</store_mesh>

store_eps_mesh

Outputs all available mesh postscript file types. Equivalent to

<store_mesh type="30">mesh</store_mesh>

test_linear_independence

Check that the obtained LR spline space satisfies the linear independence requirement. This is done through rational integer arithmetics and a dense matrix of size DOF x N, where N is the number of basis function in the tensor product expansion of the LR spline. Warning: Costly operation, and high memory consumption (max 3000-4000 DOF using 4GB RAM machines)!

Attributes: None

Value: None

Example:

<test_linear_independence/>

scheme

The refinement scheme to use.

Attributes: Options for post-processing the mesh.

  • maxAspectRatio - Maximum aspect ratio, defined as the ratio of the height to width of each element (measured in the parametric space).
  • maxTjoints - Maximum number of T-joints (hanging nodes) on an element. Mesh lines will be extended until all elements satisfy this.
  • closeGaps - If true, gaps will be closed. Gaps are defined as an element with a T-joint on each side but lacking the mesh line connecting them.

Value: The refinement scheme. The following are available (see the LR paper for a complete description):

  • fullspan - This will refine all functions with support on an element.
  • minspan - This will refine only one function.
  • isotropic_function - This will ensure isotropic elements by refining a net for each refined basis function.
fullspan minspan isotropic_function

Example:

<scheme>fullspan</scheme>
<scheme maxAspectRatio="2.0" maxTjoints="1" closeGaps="true">minspan</scheme>
<scheme maxTjoints="1" closeGaps="true">isotropic_function</scheme>

use_norm

Index of the element norm to use for refinement. Value "0" will use analytic solution (if present), any other value will use the projection technique listed in the post-processing tag.

Attributes: None

Value: The index of the element norm to use.

Example:

<use_norm>1</use_norm>

use_sub_norm

Index of the element sub norm to use for refinement.

Attributes: None

Value: The index of the element sub-norm to use.

Example:

<use_sub_norm>1</use_sub_norm>