Category 1: Any Equation#

This category includes a set of cards that are used to provide all boundary condition information for a generalized dirichlet (GD) boundary condition. The condition is applied as a pointwise collocation along a given node set. The general syntax for the GD_cards is as follows:

BC = <bc_name> <bc_type> <bc_id> <equation_name> <integer1> <variable_name> <integer2> {float_list}

The current allowable definitions and/or values for < bc_name>, <bc_type>, <bc_id>, <integer1>, <integer2> and {float_list} are provided in the individual cards. As a general note, <integer1> and <integer2> are the species number of the mass transport equation and concentration variable, respectively; they should be zero for other equation and variable types. Currently these conditions assume that the variable is defined at all the nodes at which the equation is defined (no subparametric mapping).

However, the values for <equation_name> and <variable_name>, which apply generally to all cards in this category (except as subsequently noted), are given here:

<equation_name>

A character string indicating the equation to which this boundary condition is applied, which can be

  • R_MOMENTUM1 R_MOMENTUM2 R_MOMENTUM3

  • R_MESH1 R_MESH2 R_MESH3

  • R_MASS R_ENERGY R_MASS_SURF

  • R_PRESSURE

  • R_STRESS11 R_STRESS12 R_STRESS13

  • R_STRESS22 R_STRESS23 R_STRESS33

  • R_GRADIENT11 R_GRADIENT12

  • R_GRADIENT13 R_GRADIENT21

  • R_GRADIENT22 R_GRADIENT23

  • R_GRADIENT31 R_GRADIENT32

  • R_GRADIENT33 R_POTENTIAL R_FILL

  • R_SHEAR_RATE R_MESH_NORMAL (rotate mesh equations and apply this condition to normal component)

  • R_MESH_TANG1 R_MESH_TANG2

  • R_MOM_NORMAL (rotate momentum equations and apply this condition to normal component)

  • R_MOM_TANG1 R_MOM_TANG2

  • R_POR_LIQ_PRESS R_POR_GAS_PRESS

  • R_POR_POROSITY R_POR_SATURATION

  • R_POR_ENERGY R_POR_LAST

  • R_POR_SINK_MASS R_VORT_DIR1

  • R_VORT_DIR2 R_VORT_DIR3 R_VORT_LAMBDA

  • R_CURVATURE R_LAGR_MULT1

  • R_LAGR_MULT2 R_LAGR_MULT3

  • R_BOND_EVOLUTION R_SURF_CHARGE

  • R_EXT_VELOCITY R_EFIELD1 R_EFIELD2

  • R_EFIELD3 R_ENORM R_NORMAL1

  • R_NORMAL2 R_NORMAL3 R_ _CURVATURE

  • R_SHELL_TENSION R_SHELL_X R_SHELL_Y

  • R_SHELL_USER R_PHASE1 R_PHASE2

  • R_PHASE3 R_PHASE4 R_PHASE5

  • R_SHELL_ANGLE1 R_SHELL_ANGLE2

  • R_SHELL_SURF_DIV_V R_SHELL_SURF_CURV

  • R_N_DOT_CURL_V R_GRAD_S_V_DOT_N1

  • R_GRAD_S_V_DOT_N2 R_GRAD_S_V_DOT_N3

  • R_ACOUS_PREAL R_ACOUS_PIMAG

  • R_SHELL_DIFF_FLUX

  • R_SHELL_DIFF_CURVATURE

  • R_SHELL_NORMAL1 R_SHELL_NORMAL2

  • R_ACOUS_REYN_STRESS R_SHELL_BDYVELO

  • R_SHELL_LUBP R_LUBP R_SHELL_FILMP

  • R_SHELL_FILMH R_SHELL_PARTC

  • R_SHELL_SAT_CLOSED R_SHELL_SAT_OPEN

  • R_SHELL_ENERGY R_SHELL_DELTAH

  • R_SHELL_LUB_CURV R_SHELL_SAT_GASN

  • R_SHELL_SHEAR_TOP R_SHELL_SHEAR_BOT

  • R_SHELL_CROSS_SHEAR R_MAX_STRAIN

  • R_CUR_STRAIN  R_LUBP_2

  • R_SHELL_SAT_OPEN_2 or

  • R_SHELL_LUB_CURV_2

<variable_name>

A character string indicating the variable which should be fixed, which can be

  • VELOCITY1 VELOCITY2 VELOCITY3

  • MESH_DISPLACEMENT1

  • MESH_DISPLACEMENT2

  • MESH_DISPLACEMENT3 MESH_POSITION1

  • MESH_POSITION2 MESH_POSITION3

  • MASS_FRACTION SURFACE TEMPERATURE or

  • PRESSURE (pressure will have no effect if not using Q1 or Q2 basis functions)

  • POLYMER_STRESS11

  • POLYMER_STRESS12 POLYMER_STRESS13

  • POLYMER_STRESS22 POLYMER_STRESS23

  • POLYMER_STRESS33 VOLTAGE FILL

  • SHEAR_RATE VEL_NORM D_VEL1_DT

  • D_VEL2_DT D_VEL3_DT D_T_DT D_C_DT

  • D_X1_DT D_X2_DT D_X3_DT D_S_DT D_P_DT

  • VELOCITY_GRADIENT11

  • VELOCITY_GRADIENT12

  • VELOCITY_GRADIENT13

  • VELOCITY_GRADIENT21

  • VELOCITY_GRADIENT22

  • VELOCITY_GRADIENT23

  • VELOCITY_GRADIENT31

  • VELOCITY_GRADIENT32

  • VELOCITY_GRADIENT33 POR_LIQ_PRESS

  • POR_GAS_PRESS POR_POROSITY

  • POR_POROSITY POR_TEMP  POR_SATURATION

  • POR_LAST MAX_POROUS_NUM

  • POR_SINK_MASS VORT_DIR1 VORT_DIR2

  • VORT_DIR3 VORT_LAMBDA CURVATURE

  • LAGR_MULT1 LAGR_MULT2 LAGR_MULT3

  • BOND_EVOLUTION SURF_CHARGE

  • EXT_VELOCITY EFIELD1 EFIELD2 EFIELD3

  • ENORM NORMAL1 NORMAL2 NORMAL3

  • SHELL_CURVATURE SHELL_TENSION

  • SHELL_X SHELL_Y SHELL_USER PHASE1

  • PHASE2 PHASE3 PHASE4 PHASE5

  • SHELL_ANGLE1 SHELL_ANGLE2

  • SHELL_SURF_DIV_V SHELL_SURF_CURV

  • N_DOT_CURL_V GRAD_S_V_DOT_N1

  • GRAD_S_V_DOT_N2 GRAD_S_V_DOT_N3

  • ACOUS_PREAL ACOUS_PIMAG

  • SHELL_DIFF_FLUX SHELL_DIFF_CURVATURE

  • SHELL_NORMAL1 SHELL_NORMAL2

  • ACOUS_REYN_STRESS SHELL_BDYVELO

  • SHELL_LUBP LUBP SHELL_FILMP

  • SHELL_FILMH SHELL_PARTC

  • SHELL_SAT_CLOSED SHELL_PRESS_OPEN

  • SHELL_TEMPERATURE SHELL_DELTAH

  • SHELL_LUB_CURV SHELL_SAT_GASN

  • SHELL_SHEAR_TOP SHELL_SHEAR_BOT

  • SHELL_CROSS_SHEAR MAX_STRAIN

  • CUR_STRAIN LUBP_2 SHELL_PRESS_OPEN2

  • SHELL_LUB_CURV_2

EXCEPTIONS to the above parameter definitions: For the GD_TIME card, the <variable_names> of LINEAR, EXPONENTIAL, or SINUSOIDAL are acceptable (see examples below). There are also differences in the use of the GD_TABLE card, which are explained in the description of that card below.

A GD boundary condition can be applied multiple times to the same side set and equation to build up a general multiparameter condition. When this is done, the function is built by expanding the equations sequentially in the order specified in the BC list.

Descriptions of the GD cards are given next. An insert entitled “Usage Notes on the GD Cards” follows the descriptions, explaining how the cards are used together in various combinations.

FIX#

BC = FIX NS <bc_id> {char_string} <integer1>

Description / Usage#

(DC/VARIED)

This boundary condition card is used to fix the value of a nodal variable along a node set to the value it receives from an initial guess file (viz. either from the neutral file specified by the Initial Guess card or an input EXODUS II file as also specified by the read_exoII_file option on the Initial Guess card). The boundary condition is applied as a Dirichlet condition (see technical discussion below).

Definitions of the input parameters are as follows:

FIX

Name of the boundary condition (<bc_name>).

NS

Type of boundary condition (<bc_type>), where NS denotes node set in the EXODUS II database.

<bc_id>

The boundary flag identifier, an integer associated with <bc_type> that identifies the boundary location (node set in EXODUS II) in the problem domain.

{char_string}

Variable name that is to be fixed. This parameter can have the following permissible values:

  • VELOCITY1

  • VELOCITY2 VELOCITY3

  • MESH_DISPLACEMENT1

  • MESH_DISPLACEMENT2

  • MESH_DISPLACEMENT3

  • SOLID_DISPLACEMENT1

  • SOLID_DISPLACEMENT2

  • SOLID_DISPLACEMENT3 MASS_FRACTION

  • TEMPERATURE PRESSURE VOLTAGE FILL

  • POLYMER_STRESS11 POLYMER_STRESS12

  • POLYMER_STRESS13 POLYMER_STRESS22

  • POLYMER_STRESS23 POLYMER_STRESS33

  • VELOCITY_GRADIENT11

  • VELOCITY_GRADIENT12

  • VELOCITY_GRADIENT13

  • VELOCITY_GRADIENT21

  • VELOCITY_GRADIENT22

  • VELOCITY_GRADIENT23

  • VELOCITY_GRADIENT31

  • VELOCITY_GRADIENT32

  • VELOCITY_GRADIENT33 POR_LIQ_PRES

  • POR_GAS_PRES POR_POROSITY

  • POR_POROSITY POR_TEMP POR_SATURATION

  • POR_LAST MAX_POROUS_NUM

  • POR_SINK_MASS VORT_DIR1 VORT_DIR2

  • VORT_DIR3 VORT_LAMBDA CURVATURE

  • LAGR_MULT1 LAGR_MULT2 LAGR_MULT3

  • BOND_EVOLUTION SURF_CHARGE

  • EXT_VELOCITY EFIELD1 EFIELD2 EFIELD3

  • ENORM NORMAL1 NORMAL2 NORMAL3

  • SHELL_CURVATURE SHELL_TENSION

  • SHELL_X SHELL_Y SHELL_USER PHASE1

  • PHASE2 PHASE3 PHASE4 PHASE5

  • SHELL_ANGLE1 SHELL_ANGLE2

  • SHELL_SURF_DIV_V SHELL_SURF_CURV

  • N_DOT_CURL_V GRAD_S_V_DOT_N1

  • GRAD_S_V_DOT_N2 GRAD_S_V_DOT_N3

  • ACOUS_PREAL ACOUS_PIMAG

  • SHELL_DIFF_FLUX SHELL_DIFF_CURVATURE

  • SHELL_NORMAL1 SHELL_NORMAL2

  • ACOUS_REYN_STRESS SHELL_BDYVELO

  • SHELL_LUBP LUBP SHELL_FILMP

  • SHELL_FILMH SHELL_PARTC

  • SHELL_SAT_CLOSED SHELL_PRESS_OPEN

  • SHELL_TEMPERATURE SHELL_DELTAH

  • SHELL_LUB_CURV SHELL_SAT_GASN

  • SHELL_SHEAR_TOP SHELL_SHEAR_BOT

  • SHELL_CROSS_SHEAR MAX_STRAIN

  • CUR_STRAIN LUBP_2 SHELL_PRESS_OPEN2

  • SHELL_LUB_CURV_2

<integer1>

Species number of concentration, or zero if variable is not concentration.

Examples#

The following is an example of using this card to set the mesh displacement components in a 2-D problem:

BC =    FIX    NS    4    MESH_DISPLACEMENT1    0
BC =    FIX    NS    4    MESH_DISPLACEMENT2    0

In this example, several continuation steps were taken to deform part of an elastic block of material. The displacements on boundary node set 4 were then held constant while moving another boundary (because the current displacements were not known, FIX was a convenient tool).

Technical Discussion#

This boundary condition capability is indispensable for moving-mesh problems when the dependent variable is the mesh displacement from a stress free state. If one were to try to use the DX/DY/DZ type Dirichlet condition to suddenly freeze a mesh along a node set after a parameter continuation or transient problem restart, then they would be faced with figuring out the displacement of each node and defining individual node sets for each node for boundary condition application. This capability is also beneficial when using previous simulation results to generate boundary conditions for more complex analysis. We have on occasion used this boundary condition for most of the variable types shown.


GD_CONST#

BC = GD_CONST SS <bc_id> <equation_name> <integer1> <variable_name> <integer2> <float>

Description / Usage#

(PCC/VARIED)

This boundary condition of type Category 1 (see discussion) is used to impose a constant value for any nodal variable, using the residual function form

\[x - C_1 = 0\]

\(C_1\) being the constant value (<float>) and \(x\) being the <variable_name>. This boundary condition card can be used in combination with any of the other GD_* conditions as a building block to construct more complicated conditions. Please see the examples on all of these cards for details and instructive uses. Definitions of the input parameters are as follows:

GD_CONST

Name of the boundary condition (<bc_name>).

SS

Type of boundary condition (<bc_type>), where SS denotes side set in the EXODUS II database.

<bc_id>

The boundary flag identifier, an integer associated with <bc_type> that identifies the boundary location (side set in EXODUS II) in the problem domain.

<equation_name>

A character string indicating the equation to which this boundary condition is applied (see the list of permissible values in the discussion above for Category 1).

<integer1>

Species number of the mass transport equation. The value should be 0 unless the <equation_name> is of type R_MASS.

<variable_name>

A character string indicating the variable that should be fixed (see the list of permissible values in the discussion above for Category 1).

<integer2>

Species number of the concentration variable.The value should be 0 unless the <variable_name> is of type MASS_FRACTION.

<float>

Value of variable \(C_1\).

Examples#

Following is a sample card:

BC = GD_CONST SS 2 R_MESH_NORMAL 0 MASS_FRACTION 0 0.2

This boundary condition results in the equation \(C_1 - 0.2 = 0\) being applied as a boundary condition to the mesh-motion equation and being rotated into a normal-tangential basis. \(C_1\) is the concentration of the zeroth species. The equation is actually applied as a replacement to the normal component of the mesh motion equation and in this case would cause the mesh surface, defined by side set 2, to move as the isoconcentration surface of \(C_1 = 0.2\).

Technical Discussion#

Note that this collocated boundary condition may be applied as a rotated, vector or scalar condition depending on the equation to which this condition applies. The example above is a powerful demonstration of this boundary condition as a distinguishing condition. Please consult the example discussions on the other GD_* options for more detailed examples, as this boundary condition card can be used in an additive way with other GD_* cards.


GD_LINEAR#

BC = GD_LINEAR SS <bc_id> <equation_name> <integer1> <variable_name> <integer2> <float1> <float2>

Description / Usage#

(PCC/VARIED)

This boundary condition of type Category 1 (see discussion) is used to impose a linear function for any nodal variable, using the residual function form

\[C_1 + C_2x = 0\]

where \(C_1\) and \(C_2\) being the constant values and \(x\) representing any variable (<variable_name>). This boundary condition card can be used in combination with any of the other GD_* conditions as a building block to construct more complicated conditions. Moreover, the resulting boundary condition can be applied as a strong residual replacement to any differential equation type. Please see the examples on all of these cards for details and instructive uses. Definitions of the input parameters are as follows:

GD_LINEAR

Name of the boundary condition (<bc_name>).

SS

Type of boundary condition (<bc_type>), where SS denotes side set in the EXODUS II database.

<bc_id>

The boundary flag identifier, an integer associated with <bc_type> that identifies the boundary location (side set in EXODUS II) in the problem domain.

<equation_name>

A character string indicating the equation to which this boundary condition is applied (see the list of permissible values in the discussion above for Category 1).

<integer1>

Species number of the mass transport equation. The value should be 0 unless the <equation_name> is of type R_MASS.

<variable_name>

A character string indicating the variable that should be fixed (see the list of permissible values in the discussion above for Category 1).

<integer2>

Species number of the concentration variable.The value should be 0 unless the <variable_name> is of type MASS_FRACTION.

<float1>

Intercept \(C_1\)

<float2>

Slope \(C_2\)

Examples#

Following is a sample card:

BC = GD_LINEAR SS 1 R_MESH1 0 MESH_POSITION1 0 -1. 2.

This boundary condition results in the equation \(2.0*x - 1.0 = 0\) to be applied as a boundary condition to the x-component of the mesh motion equation. x is the xcomponent of the mesh position (N.B. not displacement, as MESH_POSITION1 would be replaced by MESH_DISPLACEMENT1 in the above). The equation is actually applied as a replacement to the x-component of the mesh motion equation and in this case would lead to the mesh surface, defined by side set 1, to move or position itself according to this linear relationship.

Technical Discussion#

Note that this collocated boundary condition may be applied as a rotated, vector or scalar condition depending on the equation to which this condition applies. Please consult the example discussions on the other GD_* options for more detailed examples, as this boundary condition card can be used in an additive way with those.


GD_PARAB#

BC = GD_PARAB SS <bc_id> <equation_name> <integer1> <variable_name> <integer2> <float1> <float2> <float3>

Description / Usage#

(PCC/VARIED)

This boundary condition of type Category 1 (see discussion) is used to impose a quadratic function for any nodal variable, using the residual function form

\[C_1 + C_2x + C_3x^2 = 0\]

where \(C_1\), \(C_2\), and \(C_3\) are the constant values (<float>) and \(x\) represents any variable (<variable_name>). This boundary condition card can be used in combination with any of the other GD_* conditions as a building block to construct more complicated conditions. Moreover, the resulting boundary condition can be applied as a strong residual replacement to any differential equation type. Please see the examples on all of these cards for details and instructive uses. Definitions of the input parameters are as follows:

GD_PARAB

Name of the boundary condition (<bc_name>).

SS

Type of boundary condition (<bc_type>), where SS denotes side set in the EXODUS II database.

<bc_id>

The boundary flag identifier, an integer associated with <bc_type> that identifies the boundary location (side set in EXODUS II) in the problem domain.

<equation_name>

A character string indicating the equation to which this boundary condition is applied (see the list of permissible values in the discussion above for Category 1).

<integer1>

Species number of the mass transport equation. The value should be 0 unless the <equation_name> is of type R_MASS.

<variable_name>

A character string indicating the variable that should be used in the function (see the list of permissible values in the discussion above for Category 1).

<integer2>

Species number of the concentration variable.The value should be 0 unless the <variable_name> is of type MASS_FRACTION.

<float1>

Intercept \(C_1\).

<float2>

Slope \(C_2\).

<float3>

Acceleration \(C_3\).

Examples#

Following is a sample card:

BC = GD_PARAB SS 4 R_MESH1 0 MESH_POSITION2 0 1. -2. -3.
BC = GD_LINEAR SS 4 R_MESH1 0 MESH_DISPLACEMENT1 0   0. -1.

This boundary condition results in the equation \(-3*y^2-2.0*y + 1.0 = 0\) to be applied as a boundary condition to the x-component of the mesh motion equation. y is the ycomponent of the mesh position (N.B. not displacement, as MESH_POSITION2 would be replaced by MESH_DISPLACEMENT2 in the above). The equation is actually applied as a replacement to the x-component of the mesh motion equation and in this case would lead to the mesh surface, defined by side set 4, to move or position itself according to this quadratic relationship.

Technical Discussion#

This condition is convenient for applying Poiseuille velocity profiles, as a circular condition on geometry, together with many other uses.

Note that this collocated boundary condition may be applied as a rotated, vector or scalar condition depending on the equation to which this condition applies. Please consult the example discussions on the other GD_* options and the examples below for more detailed examples, as this boundary condition card can be used in an additive way with those.

References#

Please consult the following reference (on Roll Coating) for examples of roll surface geometry.

GT-003.1: Roll coating templates and tutorial for GOMA and SEAMS, February 29, 2000, P. R. Schunk and Matt Stay


GD_POLYN#

BC = GD_POLYN SS <bc_id> <equation_name> <integer1> <variable_name> <integer2> <float_list>

Description / Usage#

(PCC/VARIED)

This boundary condition of type Category 1 (see discussion) is used to impose a polynomial function for any nodal variable, using the residual function form of a 6th order polynomial dependence on a variable

\[C_1 + C_2x + C_3x^2 + C_4x^3 + C_5x^4 + C_6x^5 + C_7x^6 = 0\]

There are three required and four optional parameters in the <float_list>; definitions of the input parameters are as follows:

GD_POLYN

Name of the boundary condition (<bc_name>).

SS

Type of boundary condition (<bc_type>), where SS denotes side set in the EXODUS II database.

<bc_id>

The boundary flag identifier, an integer associated with <bc_type> that identifies the boundary location (side set in EXODUS II) in the problem domain.

<equation_name>

A character string indicating the equation to which this boundary condition is applied (see the list of permissible values in the discussion above for Category 1).

<integer1>

Species number of the mass transport equation. The value should be 0 unless the <equation_name> is of type R_MASS.

<variable_name>

A character string indicating the variable that should be fixed (see the list of permissible values in the discussion above for Category 1).

<integer2>

Species number of the concentration variable. The value should be 0 unless the <variable_name> is of type MASS_FRACTION.

<float1>

Intercept \(C_1\).

<float2>

Slope \(C_2\).

<float3>

Acceleration \(C_3\).

<float4>

Coefficient for 3rd-order term \(C_4\).

<float5>

Coefficient for 4th-order term \(C_5\).

<float6>

Coefficient for 5th-order term \(C_6\).

<float7>

Coefficient for 6th-order term \(C_7`\).

Examples#

Following is a set of sample cards:

BC = GD_POLYN SS 2 R_ENERGY 0 MESH_POSITION1 0 {c1} {c2} {c3} {c4} {c5} {c6} {c7}
BC = GD_LINEAR SS 2 R_ENERGY 0 TEMPERATURE 0   0. -1.

This boundary condition results in the equation

\[C_1 + C_2x + C_3x^2 + C_4x^3 + C_5x^4 + C_6x^5 + C_7x^6 = T\]

to be applied as a boundary condition on the energy equation, i.e., made a boundary condition on temperature with second card, which brings in a dependence on temperature. Here the coefficients are set by APREPRO, \(x\) is the x-component of the mesh position (N.B. not displacement, as MESH_POSITION2 would be replaced by MESH_DISPLACEMENT2 in the above).

Technical Discussion#

This condition is not used as often as GD_LINEAR and GD_PARAB, and in fact supersedes those conditions. Please consult the example discussions on the other GD_* options and the example section after GD_TABLE for more descriptive examples.


GD_TIME#

BC = BC = GD_TIME SS <bc_id> <equation_name> <integer1> <time_func_name> <integer2> <float1> <float2> [float3]

Description / Usage#

(PCC/VARIED)

This boundary condition card is actually a multiplicative building block that can be used to impose a multiplicative time modulation of a specified functional form on any set of GD_* conditions. NOTE: unlike the other GD_* cards which are additive, this card is multiplicative. This condition must be placed after any single or set of GD_* cards for which the user wishes to modulate (viz. GD_LINEAR, GD_PARAB, etc.). The card can be used as many times as needed to construct the desired function. The examples below will clarify its use. Definitions of the input parameters are as follows:

GD_TIME

Name of the boundary condition (<bc_name>).

SS

Type of boundary condition (<bc_type>), where SS denotes side set in the EXODUS II database.

<bc_id>

The boundary flag identifier, an integer associated with <bc_type> that identifies the boundary location (side set in EXODUS II) in the problem domain.

<equation_name>

A character string indicating the equation to which this boundary condition is applied (see the list of permissible values in the discussion above for Category 1).

<integer1>

Species number of the mass transport equation. The value should be 0 unless the <equation_name> is of type R_MASS.

<time_func_name>

Keyword to identify the functional form of the time modulation. Permissible values for this parameter are LINEAR, EXPONENTIAL, and SINUSOIDAL.

<integer2>

Set this required but unused parameter to zero.

<float1>

\(C_0\) model parameter

<float2>

\(C_1\) model parameter

[float3]

Optional parameter to add a maximum time to be applied if \(t > t_{max}\) then \(t\) is set to \(t_{max}\)

The functional form of each time-modulation model is as follows:

LINEAR:

\(f(t) = C_0 + C_1t\)

EXPONENTIAL:

\(f(t) = \exp \left(C_0 + C_1t \right)\)

SINUSOIDAL:

\(f(t) = \sin \left(C_0 + C_1t \right)\)

Examples#

Following is a sample card set:

BC = GD_LINEAR SS 1 R_MESH_NORMAL 0 MESH_DISPLACEMENT1 0 1. 0.
BC = GD_TIME SS 1 R_MESH_NORMAL 0 SINUSOIDAL 0 10. 2.
BC = GD_LINEAR SS 1 R_MESH_NORMAL 0 MESH_POSITION1 0 0. -1.

This set of cards leads to the application of \(x = sin(10.0 + 2t)\) to the normal component of the mesh displacement at side set 1. If side set 1 were a surface of constant x (viz. normal in the x-direction) then this condition could be used to impose a piston motion to the surface. Recall that GD_LINEAR cards are additive with each other and GD_TIME is multiplicative with the previous cards. The first card is used to put a constant of 1.0 in the equation, the second card (GD_TIME card) multiplies that constant with the sinusoidal time function, and the third card is used to put the linear term on mesh position. Note carefully the signs used.

Invoking with a maximum time is done using the optional parameter:

BC = GD_LINEAR SS 1 R_MOMENTUM1 0 VELOCITY1 0 {web_speed/time_max} 0.
BC = GD_TIME SS 1 R_MOMENTUM1 0 LINEAR 0 0 1. {time_max}
BC = GD_LINEAR SS 1 R_MOMENTUM1 0 VELOCITY1 0 0. -1.

Technical Discussion#

This boundary condition building block is very useful for imposing time-dependent boundary conditions with some fairly standard functional forms without the inconvenience of writing a user-defined boundary condition. Boundary conditions for pulsating flow, piston motion, roll-eccentricity effects in coating, time-evolving temperature transients, etc. can all be constructed using this card. The examples at the end of this section on GD_* options will help the user construct such functions.


GD_CIRC#

BC = GD_CIRC SS <bc_id> <equation_name> <integer1> <variable_name> <integer2> <float1> <float2> <float3>

Description / Usage#

(PCC/VARIED)

This boundary condition of type Category 1 (see discussion) is used to impose a quadratic function for any nodal variable using the residual function form

\[-{C_1}^2 + C_3 \left( x - C_2\right)^2 = 0.\]

where \(C_1\), \(C_2\), and \(C_3\) are the constant values (<float>) and \(x\) represents any variable (<variable_name>). This boundary condition card can be used in combination with any of the other GD_* conditions as a building block to construct more complicated conditions. GD_CIRC happens to be a convenient building block for circles or elliptical functions (see examples below). Moreover, the resulting boundary condition can be applied as a strong residual replacement to any differential equation type. Please see the examples on all of these cards for details and instructive uses. Definitions of the input parameters are as follows: (convenient for circles):

GD_CIRC

Name of the boundary condition (<bc_name>).

SS

Type of boundary condition (<bc_type>), where SS denotes side set in the EXODUS II database.

<bc_id>

The boundary flag identifier, an integer associated with <bc_type> that identifies the boundary location (side set in EXODUS II) in the problem domain.

<equation_name>

A character string indicating the equation to which this boundary condition is applied. See the list of permissible values in the introduction to the Category 1 BCs following the Number of BC card.

<integer1>

Species number of the mass transport equation. The value should be 0 unless the <equation_name> is of type R_MASS.

<variable_name>

A character string indicating the variable that should be fixed. See the list of permissible values in the introduction to the Category 1 BCs following the Number of BC& card.

<integer2>

Species number of the concentration variable. The value should be 0 unless the <variable_name> is of type MASS_FRACTION.

<float1>

Radius \(C_1\). This should appear in only one GD_CIRC condition on each boundary.

<float2>

Origin \(C_2\).

<float3>

Ellipticity \(C_3\).

Examples#

Following is a sample set of cards:

BC = GD_CIRC SS 1 R_MESH_NORMAL 0 MESH_POSITION1 0 1. 1. 1.
BC = GD_CIRC SS 1 R_MESH_NORMAL 0 MESH_POSITION2 0 0. 1. 1.

This set of cards can be used to prescribe a mesh distinguishing condition for a mesh surface with a quadratic dependence on x and y, a circle center at [1., 1.], and a radius of 1.0 (note the radius only appears on one card).


GD_TABLE#

BC = GD_TABLE SS <bc_id> <equation_name> <integer1> <variable_name> <integer2> <scale> <interpolation> [FILE = <fname>]

Description / Usage#

(PCC/VARIED)

This card is used to specify arbitrary, univariate (one abscissa and one ordinate: x1 - x2) data for boundary conditions on two-dimensional boundaries, e.g., the inlet velocity profile of a non-Newtonian fluid in a two-dimensional channel. The GD_TABLE specification differs slightly from the other cards in this category: the data are scalable and the data can be read from a file. Like the other GD_* cards, this card can be used as an additive building block for more complicated conditions. The examples below and at the end of the GD_* section will provide more detailed guidance.

Definitions of the input parameters are described next. Differences between this card and other GD_* cards are pointed out.

GD_TIME

Name of the boundary condition (<bc_name>).

SS

Type of boundary condition (<bc_type>), where SS denotes side set in the EXODUS II database.

<bc_id>

The boundary flag identifier, an integer associated with <bc_type> that identifies the boundary location (side set in EXODUS II) in the problem domain.

<equation_name>

A character string indicating the equation to which this boundary condition is applied. See the list of permissible values in the discussion above for Category 1. In contrast to other GD_* cards, this parameter also serves to identify the equation that is being supplanted.

<integer1>

Species number of the mass transport equation. The value should be 0 unless the <equation_name> is of type R_MASS.

<variable_name>

A character string indicating the variable that should be used in the function. See the list of permissible values in the discussion above for Category 1. For this card, in contrast to other GD_* cards, this parameter also identifies what value is to serve as abscissa when interpolating the table.

<integer2>

Species number of the concentration variable.The value should be 0 unless the <variable_name> is of type MASS_FRACTION.

<scale>

A floating point value by which to multiply the ordinate list after interpolation. It can be used to scale the table values or change their sign, e.g. C0, scale factor in f(x1) = C0 * x2

<interpolation>

Specifies the method to use in interpolating between supplied data points. Currently the only choice available is LINEAR, which invokes a simple linear interpolation method. Alternative methods will/can be added latter as required or requested.

The table data will be read from within the input deck itself (following the GD_TABLE BC card). The end of the table is signaled by the keywords “END TABLE.” (See the second example below.) An alternative to this method is to read a file with table data.

[FILE = <fname>]

The optional keyword ‘FILE =’ indicates that the table data is to be read from a separate file identified by <fname>.

Note that this boundary condition card functions as every other GD condition, be it LINEAR, QUADRATIC, POLYNOMIAL, or in this case TABULAR. It is used simple as a piece of a residual on the appropriate equation. Hence, it usually requires more than one GD card to completely specify the boundary condition.

Examples#

Following is a sample card set in which the table data is to be read from an external file called upstream_land.dat:

BC = GD_LINEAR SS 1 R_MESH_NORMAL 0 MESH_POSITION2 0 0. -1.
BC = GD_TABLE SS 1 R_MESH_NORMAL 0 MESH_POSITION1 0 1.0 LINEAR
FILE=upstream_land.dat

This card set first creates a linear term in MESH_POSITION2, which is the y-coordinate of the mesh points along side set 1. The second, GD_TABLE card then creates a table of y-coordinate values based on x-mesh position. This boundary condition describes a land/filet composite geometry with x-y data points.

Following is a sample card, where the table data is to be read directly from the input deck:

BC = GD_TABLE SS 1 R_MOMENTUM1 0 MESH_POSITION2 0 1.0 LINEAR

$ r/R         Uz
0.000000      1.666667
0.050000      1.666458
0.100000      1.665000
0.150000      1.661042
0.200000      1.653333
0.250000      1.640625
0.300000      1.621667
.
.
0.900000      0.451667
0.950000      0.237708
1.000000      0.000000
END TABLE

This table is used to specify the radial dependence of an axial velocity profile along the specified side set.

Technical Discussion#

This capability is widely used for geometry and velocity profile boundary conditions that do not have a convenient closed form. Note that for geometry specifications you cannot specify multi-valued functions, like for a cutback angle.

References#

GTM-021.0: Multiparameter continuation and linear stability analysis on highly deformable meshes in Goma, M. M. Hopkins, June 22, 2000


Usage Notes on the GD Cards#

Following are several examples of uses of the Generalized Dirichlet conditions:

  • For a circular boundary ( with radius 1, center at (0,0), \(x^2 + y^2 = 1\) ):

BC = GD_PARAB SS   1   R_MESH2 0 MESH_POSITION2     0   -1.   0.   1.
BC = GD_PARAB SS   1   R_MESH2 0 MESH_POSITION1     0   -0.   0.   1.
  • For a planar boundary ( \(2x + y = 1\) )

BC = GD_LINEAR SS   1   R_MESH1 0 MESH_POSITION1     0   -1.   2.
BC = GD_LINEAR SS   1   R_MESH1 0 MESH_POSITION2     0   0.   1.
  • For a parabolic inflow velocity profile ( \(u = 1 – 2y – 3y^2\) ):

BC = GD_LINEAR SS   4   R_MOMENTUM1 0 VELOCITY1     0   0.   -1.
BC = GD_PARAB SS   4   R_MOMENTUM1 0 MESH_POSITION2     0   1.   -2.   -3.
  • For a distinguishing condition where the mesh is an iso-concentration surface (\(C = 0.2\) with mesh equations rotated):

BC = GD_CONST SS   2   R_MESH_NORMAL 0 MASS_FRACTION     0   0.  2
  • For a temperature boundary condition with APREPRO constants \(C_i\) of the form

\[T = C_1 + C_2x + C_3x^2 + C_4x^3 + C_5x^4 + C_6x^5 + C_7x^6\]
BC = GD_LINEAR SS   2   R_ENERGY 0 TEMPERATURE     0   -1
BC = GD_POLYN SS   2   R_ENERGY 0 MESH_POSITION1     0   {c1 c2 c3 c4 c5 c6 c7}

Note, in the first three examples, two cards are combined to create a single boundary condition that is a function of two variables. Thus, with a little creativity, the Generalized Dirichlet conditions can replace many of the other boundary condition types.

To help generalize the Dirichlet conditions even more, GD_TIME can be used to modulate any combination of spatial GD conditions (the CONST, LINEAR, PARAB, POLYN, CIRC and TABLE options above) which appears prior to the set. Some examples here are warranted:

  • For a parabolic inflow velocity profile which is ramped from zero to a linearly growing multiplier times ( \(u = 1 – 2y – 3y^2\) ):

BC = GD_PARAB SS   4   R_MOMENTUM1 0 MESH_POSITION2     0   1.   -2.   -3.
BC = GD_TIME SS   4   R_MOMENTUM1   0   LINEAR     0   0.   1.
BC = GD_LINEAR SS   4   R_MOMENTUM1   0   VELOCITY1      0   0.   -1.

(This set of 3 conditions actually applies \(f(x, y, z, t, u) = 1t \left(1 – 2y – 3y^2 \right) – u = 0\) in place of the x-momentum equation. )

  • For a sinusoidally time-varying roller surface with equation \((x – x_0)^2 + (y – y_0)^2 = {R_0}^2\) with a frequency of 2. and a phase lag of 10:

BC = GD_PARAB SS   1   R_MESH_NORMAL   0   MESH_POSITION2 0 {x0*x0 + y0*y0 - R0*R0} {-2.*y0} 1
BC = GD_PARAB SS   1   R_MESH_NORMAL   0   MESH_POSITION1     0 {0.}   {-2.*x0} 1
BC = GD_TIME SS   1   R_MESH_NORMAL   0   SINUSOIDAL     0   10.   2.

This set of cards applies \(f(x, y, z, t) (x – x_0)^2 + (y – y_0)^2 - \sin(2t + 10) {R_0}^2 = 0\) to the normal component of the mesh equations along side set 1.

  • For a sinusoidally varying gap on a slot coater, the substrate has been made to oscillate according to \(f(x, y, t) = y – 3 \sin(t/4 + 5) = 0\) :

BC = GD_LINEAR SS   9   R_MESH2   0   MESH_POSITION1     0   -3.  0   0.
BC = GD_TIME SS   9   R_MESH2   0   SINUSOIDAL     0   5.   0.25
BC = GD_LINEAR SS   9   R_MESH2   0   MESH_POSITION2     0   0.   1.0
  • Setting the u-velocity on an inlet boundary for a power law fluid:

BC = GD_LINEAR SS   1   R_MOMENTUM1   0   VELOCITY1     0   0.   -1.
BC = GD_TABLE SS   1   R_MOMENTUM1   0   MESH_POSITION2 0 1.0 LINEAR

$ r/R         Uz
0.000000      1.666667
0.050000      1.666458
0.100000      1.665000
0.150000      1.661042
0.200000      1.653333
0.250000      1.640625
0.300000      1.621667
.             .
.             .
.             .
0.900000      0.451667
0.950000      0.237708
1.000000      0.000000
END TABLE
  • Setting the inlet concentration profile for species 0 from data in y0.table

BC = GD_LINEAR SS   1   R_MASS   0   MASS_FRACTION     0   0.0   -1.0
BC = GD_TABLE SS   1   R_MASS   0   MESH_POSITION2 0 1.0 LINEAR FILE = y0.table
  • Setting the inlet concentration profile for species 0 from an implicit relation.

Occasionally, we have analytic representations that are in the wrong form. For example, in particulate suspension modelling, a relation exists that gives the radial coordinate as a function of the concentration, i.e. \(r = F(C)\), where \(F\) is a non-linear relation. We would prefer it the other way around. We can use GD_TABLE to solve this dilemma. First, a file is prepared with the two columns, eqn.table for example:

C_0

F(C_0)

C_1

F(C_1)

.

.

.

.

C_N

F(C_N)

This just requires function evaluation. In the input deck, we then use the following cards

BC = GD_LINEAR SS   1   R_MASS   0   MESH_POSITION2     0   0.0   -1.0
BC = GD_TABLE SS   1   R_MASS   0   MASS_FRACTION 0 1.0 LINEAR FILE = eqn.table

and the right inlet concentration profile results.


TABLE_WICV#

BC = TABLE_WICV SS <bc_id> {abscissa} {ordinate} {scale} {interpolation} [FILE = <fname>]

Description / Usage#

(WIC/VECTOR VARIED)

This boundary allows the user to supply boundary data for vector weak integrated boundary conditions. See the TABLE_WICS card for scalar weak integrated boundary conditions. A prime example of the use of the TABLE_WICV card is application of a force for a solid deformation problem.

Definitions of the input parameters are as follows:

TABLE_WICV

Name of the boundary condition (<bc_name>).

SS

Type of boundary condition (<bc_type>), where SS denotes side set in the EXODUS II database.

<bc_id>

The boundary flag identifier, an integer associated with TABLE_WICV that identifies the boundary location (side set in EXODUS II) in the problem domain.

{abscissa}

For one-dimensional tables (i.e. for use in 2D problems), the choices are restricted to one of the three coordinate directions. Use the strings X, Y or Z to identify the direction of choice. For two-dimensional tables (i.e. for use in 3D problems) use XY, XZ, YX, YZ, ZX, or ZY to denote the coordinate of the first and second columns in the table.

{ordinate}

This string identifies the equation of the weak integrated boundary term that the boundary data is added to. For example, use of the VELOCITY1 string will cause the table data to be used for all components of the liquid traction in the boundary integral for the liquid momentum equations. See the following table.

String

replaces

Equation

VELOCITY1 or U

liquid tractions

R_MOMENTUM[1-3]

MESH_DISPLACEMENT1 or DX or MESH_POSITION1

mesh tractions

R_MESH[1-3]

SOLID_DISPLACEMENT1

solid tractions

R_SOLID[1-3]

{scale}

A floating point scale multiplier which can be used to scale the tabular data. The boundary data used will be the product of {scale} and the tabular data.

{interpolation}

This is the method chosen to interpolate between supplied data points.

For one-dimensional tables, the choices are LINEAR, which denotes linear interpolation, QUADRATIC, which denotes quadratic Lagrangian interpolation and requires an odd number of data points, and QUAD_GP, which denotes quadratic interpolation where the data points represent Gauss point values. 3N data points (see Technical Discussion) are required for QUAD_GP interpolation.

For two-dimensional tables, BIQUADRATIC is currently the only choice. The first two columns of the table should define a rectangular, mapped grid where the second coordinate changes more quickly than the first. More complicated methods could be added latter.

[FILE = <fname>]

The keyword “FILE =” indicates that the table data be read from a separate file identified by <fname>. This parameter is optional and if it is left out the table data will be read from the input deck itself following the TABLE_WICV card. In this latter case, the end of the table is signaled by the keywords “END TABLE”. Note that the file specified by FILE = is fully apreproable, i.e., it will be preprocessed by APREPRO before reading if APREPRO is enabled.

Examples#

Following is a sample card:

BC = TABLE_WICV SS 12 ZX MESH_DISPLACEMENT1 BIQUADRATIC FILE = load.table
load.table:

0   0   0   6   0
0   1   0   4   0
1   0   0   3   0
1   1   0   1   0

Technical Discussion#

The table data itself appears as columns of numbers. One-dimensional TABLE_WICV tables have three columns (column1=abscissa, column2=ordinate component1, column3=ordinate component2), whereas two-dimensional TABLE_WICV tables have five columns (column1=abscissa1, column2=abscissa2, column3=ordinate component1, column4=ordinate component2, column5=ordinate component3). Goma will try to read float values from any line whose first parameter can be converted to a float.

The QUAD_GP interpolation option is meant for the case when the table data comes from another finite element model or another Goma run and the data is most readily available at the integration points of the finite element mesh. Hence, with quadratic Gaussian quadrature, there are three data points per element. N is the number of elements from the model that the data is coming from and therefore 3N data points are the total expected.

The user is also referred to the section on Boundary Condition Types at the beginning of the Boundary Condition Specifications. In particular, look at the discussion of Weakly Integrated Conditions (WIC).


TABLE_WICS#

BC = TABLE_WICS SS <bc_id> {abscissa} {ordinate} {scale} {interpolation} [FILE = <fname>]

Description / Usage#

(WIC/VARIED)

This boundary allows the user to supply boundary data for scalar weak integrated boundary conditions. See the TABLE_WICV card for vector weak integrated boundary conditions. A prime example of the use of the TABLE_WICS card is application of heat flux for a thermal problem.

Definitions of the input parameters are as follows:

TABLE_WICS

Name of the boundary condition (<bc_name>).

SS

Type of boundary condition (<bc_type>), where SS denotes side set in the EXODUS II database.

<bc_id>

The boundary flag identifier, an integer associated with TABLE_WICS that identifies the boundary location (side set in EXODUS II) in the problem domain.

{abscissa}

For one-dimensional tables (i.e. for use in 2D problems), the choices are restricted to one of the three coordinate directions. Use the strings X, Y or Z to identify the direction of choice. For two-dimensional tables (i.e. for use in 3D problems) use XY, XZ, YX, YZ, ZX, or ZY to denote the coordinate of the first and second columns in the table.

{ordinate}

This string identifies the equation of the weak integrated boundary term that the boundary data is added to. For example, use of the VELOCITY1 string will cause the table data to be used for the x-component of the liquid traction in the boundary integral for the x-momentum equation. See the following table.

String

replaces

Equation

VELOCITY1 or U

liquid x-traction

R_MOMENTUM1

VELOCITY2 or V

liquid y-traction

R_MOMENTUM2

VELOCITY3 or W

liquid z-traction

R_MOMENTUM3

TEMPERATURE

diffusive energy flux

R_ENERGY

MESH_DISPLACEMENT1 or DX or MESH_POSITION1

mesh x-traction

R_MESH1

MESH_DISPLACEMENT2 or DY or MESH_POSITION2

mesh y-traction

R_MESH2

MESH_DISPLACEMENT3 or DZ or MESH_POSITION3

mesh z-traction

R_MESH3

SOLID_DISPLACEMENT1

solid x-traction

R_SOLID1

SOLID_DISPLACEMENT2

solid y-traction

R_SOLID2

SOLID_DISPLACEMENT3

solid z-traction

R_SOLID3

S[1-3][1-3]_[1-7]

polymer mode traction

R_STRESS[1-3][1-3]_[1-7]

{scale}

A floating point scale multiplier which can be used to scale the tabular data. The boundary data used will be the product of {scale} and the tabular data.

{interpolation}

This is the method chosen to interpolate between supplied data points.

For one-dimensional tables, the choices are LINEAR, which denotes linear interpolation, QUADRATIC, which denotes quadratic Lagrangian interpolation and requires an odd number of data points, and QUAD_GP, which denotes quadratic interpolation where the data points represent Gauss point values. 3N data points (see Technical Discussion) are required for QUAD_GP interpolation.

For two-dimensional tables, BIQUADRATIC is currently the only choice. The first two columns of the table should define a rectangular, mapped grid where the second coordinate changes more quickly than the first. More complicated methods could be added latter.

[FILE = <fname>]

The keyword “FILE =” indicates that the table data be read from a separate file identified by <fname>. This parameter is optional and if it is left out the table data will be read from the input deck itself following the TABLE_WICS card. In this latter case, the end of the table is signaled by the keywords “END TABLE”. Note that the file specified by FILE = is fully apreproable, i.e., it will be preprocessed by APREPRO before reading if APREPRO is enabled.

Examples#

Following is a sample card:

BC = TABLE_WICS SS 12 X TEMPERATURE QUADRATIC FILE =heatflux.table
heatflux.table:

0.0    1.0
0.5    1.5
1.0    1.75
1.5    2.0
2.0    2.0

Technical Discussion#

The table data itself appears as columns of numbers. One-dimensional TABLE_WICS tables have two columns (column1=abscissa, column2=ordinate), whereas twodimensional TABLE_WICS tables have three columns (column1=abscissa1, column2=abscissa2, column3=ordinate). Goma will try to read float values from any line whose first parameter can be converted to a float.

The QUAD_GP interpolation option is meant for the case when the table data comes from another finite element model or another Goma run and the data is most readily available at the integration points of the finite element mesh. Hence, with quadratic Gaussian quadrature, there are three data points per element. N is the number of elements from the model that the data is coming from and therefore 3N data points are the total expected.

The user is also referred to the section on Boundary Condition Types at the beginning of the Boundary Condition Specifications. In particular, look at the discussion of Weakly Integrated Conditions (WIC).


TABLE#

BC = TABLE SS <bc_id> {X|Y|Z|TIME} {ordinate} [species] {interpolation} [FILE = <fname>] [NAME = <identifier>]

Description / Usage#

(PCC/VARIED))

This boundary condition is a stand-alone version of the more complicated GD_TABLE card. It allows the user to supply arbitrary univariate (one abscissa and one ordinate) data about the spatial variation of unknowns fields on a boundary. The abscissa will be one of the three spatial coordinates or time and the ordinate is one of a choice of unknown field variables. All TABLE_BC conditions must have attached tabular data as a list of paired float values either directly following the card or in a separate file (identified on the card). The list of data pairs is terminated by the string “END TABLE” on its own line.

Definitions of the input parameters are as follows:

TABLE

Name of the boundary condition.

SS

Type of boundary condition (<bc_type>), where SS denotes side set in the EXODUS II database.

<bc_id>

The boundary flag identifier, an integer associated with <bc_type> that identifies the boundary location (side set in EXODUS II) in the problem domain.

{X|Y|Z|TIME}

A char_string that identifies the independent table variable (abscissa). The strings X,Y, and Z refer of course to the three spatial coordinates. Depending on the choice here, the x, y, or z coordinate value at a given point, respectively, is used to obtain an interpolated ordinate value using the attached table data. If the TIME string appears here, however, the current simulation time is used to interpolate an ordinate value. This single value is applied uniformly to the sideset.

{ordinate}

This string associates a variable type with the values of the ordinate in the attached table. It also identifies the equation that is supplanted by the boundary condition on the sideset. The following table lists the available string choices and the corresponding equation component clobbered by the boundary condition.

String

replaces

Equation*

VELOCITY1 or U

R_MOMENTUM1

VELOCITY2 or V

R_MOMENTUM2

VELOCITY3 or W

R_MOMENTUM3

MASS_FRACTION or Y or SPECIES

R_MASS

TEMPERATURE

R_ENERGY

MESH_DISPLACEMENT1 or DX

R_MESH1

MESH_DISPLACEMENT2 or DY

R_MESH2

MESH_DISPLACEMENT3 or DZ

R_MESH3

PRESSURE or P

R_PRESSURE

SOLID_DISPLACEMENT1 or DX_RS

R_SOLID1

SOLID_DISPLACEMENT2 or DY_RS

R_SOLID2

SOLID_DISPLACEMENT3 or DZ_RS

R_SOLID3

SHEAR_RATE or SH

R_SHEAR_RATE

String

replaces

Equation*

S11

R_STRESS11

S12

R_STRESS11

S22

R_STRESS11

S13

R_STRESS11

S23

R_STRESS11

S33

R_STRESS11

String

replaces

Equation*

S11_1

R_STRESS11_1

S12_1

R_STRESS12_1

S22_1

R_STRESS22_1

S13_1

R_STRESS13_1

S23_1

R_STRESS23_1

S33_1

R_STRESS33_1

String

replaces

Equation*

S11_2

R_STRESS11_2

S12_2

R_STRESS12_2

S22_2

R_STRESS22_2

S13_2

R_STRESS13_2

S23_2

R_STRESS23_2

S33_2

R_STRESS33_2

String

replaces

Equation*

S11_3

R_STRESS11_3

S12_3

R_STRESS12_3

S22_3

R_STRESS22_3

S13_3

R_STRESS13_3

S23_3

R_STRESS23_3

S33_3

R_STRESS33_3

String

replaces

Equation*

S11_4

R_STRESS11_4

S12_4

R_STRESS12_4

S22_4

R_STRESS22_4

S13_4

R_STRESS13_4

S23_4

R_STRESS23_4

S33_4

R_STRESS33_4

String

replaces

Equation*

S11_5

R_STRESS11_5

S12_5

R_STRESS12_5

S22_5

R_STRESS22_5

S13_5

R_STRESS13_5

S23_5

R_STRESS23_5

S33_5

R_STRESS33_5

String

replaces

Equation*

S11_6

R_STRESS11_6

S12_6

R_STRESS12_6

S22_6

R_STRESS22_6

S13_6

R_STRESS13_6

S23_6

R_STRESS23_6

S33_6

R_STRESS33_6

String

replaces

Equation*

S11_7

R_STRESS11_7

S12_7

R_STRESS12_7

S22_7

R_STRESS22_7

S13_7

R_STRESS13_7

S23_7

R_STRESS23_7

S33_7

R_STRESS33_7

[species]

An optional integer parameter that identifies the index of the appropriate species. Note, it should appear only when the <ordinate> string is MASS_FRACTION.

{interpolation}

A char_string parameter that identifies the method chosen to interpolate between the attached table data points. For one-dimensional tables, the choices are LINEAR, which denotes simple linear interpolation, and QUADRATIC, which denotes quadratic Lagrangian interpolation. Note that the latter requires an odd number of data points be supplied in the table.

[FILE = <fname>]

The optional char_string keyword “FILE =” indicates that the table data be read from a separate file identified by <fname>. This parameter is optional and if it is left out the table data will be read from the input deck itself following the TABLE BC card. Note that the file specified by <fname> will be first preprocessed by APREPRO if that option was enabled on the command line. This is a useful feature that allows for a quick way to introduce analytic expressions onto boundaries.

[NAME = <identifier>]

The optional char_string keyword NAME = allows for a set of table data to be attached to the char_string parameter <identifier>. This option can only be used if the table data is read from a separate file identified by FILE = <fname>. In this case, the file <fname> is scanned for the char_string “identifier:” (note the colon). Once found the table data is read until encountering END TABLE. This option permits multiple sets of data in the same file.

The second half of the TABLE_BC implementation is the tabular data itself. In the TABLE boundary condition, it consists of a set of paired float values, each pair on its own line. This data should follow directly after the TABLE boundary condition card if the FILE = option is not used. If a value for <fname> is supplied, the table data should be written in the file so indicated. Note that in most implementations of UNIX, <fname> can include a complete path specification in case the datafile is in a different directory than the run directory. In either case, input deck or separate file, the set of data table pairs should always be terminated by the string END TABLE to terminate reading of the data. When reading the table data, Goma attempts to read a float value on each line. If it is unsuccessful, e.g., a string might start the line, it will proceed to the next line. If it is successful, it will attempt to read a second float value to complete the data pair. An unsuccessful read here is an error. Once the second value is read, however, the remainder of the line is discarded and the next line is read. This procedure permits inclusion of comments within. See the next section for some examples.

Thus,

3. 1.e-4
1. 3. % this is a good example
$ 1. 40.0
$ I have no idea where the following data came from
    3.4   2.1
    1.e-2   6000.0

will result in four data points being read, whereas, both of the following

6.443   3.43c
5.4099   % 099.0

will result in an error.

Examples#

The following is an example of a tabular data set that will be read correctly

$ This data came from M. Hobbs. God only knows where he got it.
T   k
0.5 1.e-4
1. 15.   % I’m not particularly sure about this one.
3.4   8.1
5.6   23.0
$ 1.0 40.0

In this case, four data pairs will be read to form the table.

Example usage of the TABLE card follows:

  • Setting the u-velocity on an inlet boundary for a power law fluid:

BC = TABLE SS 1 Y U LINEAR
$ r/R Ux
0.000000 1.666667
0.050000 1.666458
0.100000 1.665000
0.150000 1.661042
0.200000 1.653333
0.250000 1.640625
0.300000 1.621667
..
..
0.900000 0.451667
0.950000 0.237708
1.000000 0.000000
END TABLE

  • Setting the inlet concentration profiles for species 0 and species 1 from data in y.table:

BC = TABLE SS 1 Y SPECIES 0 QUADRATIC FILE = y.table NAME = y0
BC = TABLE SS 1 Y SPECIES 1 QUADRATIC FILE = y.table NAME = y1

  • The file y.table contains:

y0:
        0.   1.0
        0.25 0.75
        0.5 0.60
        0.75 0.30
        1.0 0.20
END TABLE
y1:
        0. 0.0
        0.25 0.2
        0.5 0.3
        0.75 0.5
        1.0 0.8
END TABLE

  • Setting a temperature history on a sideset

BC = TABLE SS 1 TIME TEMPERATURE LINEAR
0.0   0.0
10.0   373.0
40.0   373.0
50.0   500.0
100.0   500.0
150    0.0
100000.0   0.0
END TABLE

Technical Discussion#

The TABLE boundary condition provides similar functionality to the GD_TABLE boundary condition but with a simplified interface the notion behind both cards is that often information on boundaries is known only as a set of data points at specific positions on the boundary. The TABLE boundary condition can use that boundary information to provide interpolated values at nodal locations and then impose them as a strong point collocated condition.

Interpolation orders for this method are limited to LINEAR and QUADRATIC with the latter requiring an odd number of data points be supplied in the table.