Skip to content

Appendix

Appendix A: Summary of Boundary Curve Definitions

Defining a parametric equation:

   \begin{PARAMETRIC_EQUATION_CURVE}
     name = <name>
     xEqn = x(t) = <x-equation>
     yEqn = y(t) = <y-equation>
     zEqn = z(t) = 0.0
 \end{PARAMETRIC_EQUATION_CURVE}

Defining a Spline:

\begin{SPLINE_CURVE}
   name = <name>
   nKnots = # of nodes
    \begin{SPLINE_DATA}
      t x y z
      .
      .
      .
    \end{SPLINE_DATA}
 \end{SPLINE_CURVE}

In one of the few cases where the order of keywords is important, the nKnots definition must precede the \begin{SPLINE_DATA} block.

Alternatively,

\begin{SPLINE_CURVE}
    name = <name>
    file = <pathToDataFile>
\end{SPLINE_CURVE}

The data file will have the number of nodes as the first line, followed by the data, e.g.

    9
    0.000000000000000 -3.50000000000000  3.50000000000000 0.0
    3.846153846153846E-002 -3.20000000000000  5.00000000000 0.0
    7.692307692307693E-002 -2.00000000000000  6.00000000000 0.0
    0.769230769230769  0.000000000000000 -1.00000000000000 0.0
    0.807692307692308 -1.00000000000000 -1.00000000000000 0.0
    0.846153846153846 -2.00000000000000 -0.800000000000000 0.0
    0.884615384615385 -2.50000000000000  0.000000000000000 0.0
    0.923076923076923 -3.00000000000000  1.00000000000000 0.0
    1.00000000000000 -3.50000000000000  3.50000000000000 0.0

Defining a Straight Line:

  \begin{END_POINTS_LINE}
    name   = <name>
    xStart = [x,y,0]
       xEnd   = [x,y,0]
  \end{END_POINTS_LINE}

Defining a Circular Arc:

  \begin{CIRCULAR_ARC}
    name         = <name>
    units    =degrees/radians(Optional.Default:radians)
    center   = [x,y,0]
       radius    = r
    start angle = Tstart
    end angle   = Tend
  \end{CIRCULAR_ARC}

Chaining curves:

\begin{CHAIN}
    name = <Chain Name>
    First curve definition
    Second curve definition
    ...
    Last curve definition
\end{CHAIN}

Appendix B: Summary of Model Definition Blocks

No inner boundaries:

   \begin{MODEL}
    \begin{OUTER_BOUNDARY}
        First curve definition
        Second curve definition
        ...
        Last curve definition
    \end{OUTER_BOUNDARY}
\end{MODEL}

No outer boundaries:

   \begin{MODEL}
    \begin{INNER_BOUNDARIES}
        First chain definition
        Second chain definition
        ...
        Last chain definition
    \end{INNER_BOUNDARIES}
\end{MODEL}

Both inner and outer boundaries:

   \begin{MODEL}
    \begin{OUTER_BOUNDARY}
        First curve definition
        Second curve definition
        ...
        Last curve definition
    \end{OUTER_BOUNDARY}
    \begin{INNER_BOUNDARIES}
        First chain definition
        Second chain definition
        ...
        Last chain definition
    \end{INNER_BOUNDARIES}
\end{MODEL}

Appendix C: Summary of the Control Block

The control block (required):

\begin{CONTROL_INPUT}
    ...
\end{CONTROL_INPUT}

The run parameters (required):

\begin{RUN_PARAMETERS}
  mesh file name   = <pathToMeshFile>
  plot file name   = <pathToPlotFile>
  stats file name  = <pathToStatsFile> **or** none
  mesh file format = ISM **or** ISM-v2
  polynomial order = Boundary polynomial order
  plot file format = skeleton **or** sem
\end{RUN_PARAMETERS}

To specify the background grid (required):

\begin{BACKGROUND_GRID}
  background grid size = [x,y,0.0]
\end{BACKGROUND_GRID}

if there is an outer boundary curve in the model. If there is no outer boundary, just an implied box, then use

\begin{BACKGROUND_GRID}
   x0 = [xLeft, yBottom, 0.0]
   dx = [dx, dy, 0.0]
   N  = [Nx,nY,0]
\end{BACKGROUND_GRID}

Smoothing is recommended (highly!)

\begin{SPRING_SMOOTHER}
  smoothing            = ON **or** OFF
  smoothing type       = LinearAndCrossbarSpring **or* LinearSpring
  number of iterations = typically 20-30
\end{SPRING_SMOOTHER}

If manual local refinement is desired, include

\begin{REFINEMENT_REGIONS}
    ...
\END{REFINEMENT_REGIONS}

with blocks of the types

   \begin{REFINEMENT_CENTER}
      type = smooth **or** sharp
      x0   = [xCenter,-yCenter,0.0]
      h    = mesh size
      w    = radial extent
  \end{REFINEMENT_CENTER}

   \begin{REFINEMENT_LINE}
      type = smooth **or** sharp
      x0   = [xStart,yStart,0.0]
      x1   = [xEnd,yEnd,0.0]
      h    = mesh size
      w    = width of line
   \end{REFINEMENT_LINE}

To generate 3D meshes, add an extrusion algorithm, either

\begin{SIMPLE_EXTRUSION}
  direction          = 1 (=x), 2 (=y), 3 (=z)
  height             = height of extrusion
  subdivisions       = how many elements in the extrusion direction
  start surface name = name of start surface
  end surface name   = name of end surface
\end{SIMPLE_EXTRUSION}

or to sweep-rotate a 2D mesh,

\begin{SIMPLE_ROTATION}
  direction             = 1 (=x), 2 (=y), 3 (=z) = rotation axis
  rotation angle factor =  fraction of pi
  subdivisions          = number of elements in direction
  start surface name    = name of start surface
  end surface name      = name of end surface
\end{SIMPLE_ROTATION}

or to sweep along a curve,

\begin{SWEEP_ALONG_CURVE}
  algorithm                = Hanson (optional)
  subdivisions per segment = Subdivisions for each curve in sweep curve chain
  start surface name       = name of start surface
  end surface name         = name of end surface
\end{SWEEP_ALONG_CURVE}

For the sweep-curve, add the curve to the model:

\begin{SWEEP_CURVE}
    ... Curve chain ...
\end{SWEEP_CURVE}

and if scaling along the sweep is desired, also add

  \begin{SWEEP_SCALE_FACTOR}
    ... chain of PARAMETRIC_EQUATIONs
  \end{SWEEP_SCALE_FACTOR}

to the model.

If the SIMPLE_EXTRUSION is used, bottom topography can be optionally added to the model

\begin{TOPOGRAPHY}
    eqn = f(x,y) = some function of (x,y) as an equation
    sizing = ON /OR/ OFF
\end{TOPOGRAPHY}

The sizing keyword is optional if no sizing along the topography is desired, or it can be turned Off for the same result.