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
\(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
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
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
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
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
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.