Category 3: Real Solid Equations#
The reader is referred to a report by Schunk (2000) for a complete description of this equation type. Briefly, these boundary conditions pertain to the TOTAL_ALE mesh motion type (see Mesh Motion card), and are applied to the real solid only, viz. the boundary conditions applied to the companion mesh motion equations are still needed to control the mesh, independent of the realsolid material.
DXDYDZ_RS#
BC = {DX_RS | DY_RS | DZ_RS} NS <bc_id> <float1> [float2]
Description / Usage#
(DC/REALSOLID)
This boundary condition format is used to set a constant X, Y, or Z real-solid displacement on the real-solid mesh motion equations (see TOTAL_ALE option on the Mesh Motion card). Each such specification is made on a separate input card. These boundary conditions are of the Dirichlet type and must be applied on EXODUS II node sets. Definitions of the input parameters are as follows:
{DX_RS | DY_RS | DZ_RS} |
Boundary condition name (<bc_name>) that defines the displacement, where:
|
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. |
<float1> |
Value of the real_solid displacement (X, Y, or Z) defined above. |
[float2] |
An optional parameter (that serves as a flag to the code for a Dirichlet boundary condition). If a value is present, and is not -1.0, the condition is applied as a residual equation. Otherwise, it is a “hard set” condition and is eliminated from the matrix. The residual method must be used when this Dirichlet boundary condition is used as a parameter in automatic continuation sequences. |
Examples#
Following is a sample card which applies in an X-displacement boundary condition to the real-solid to the nodes in node set 100, specifically an X- real-solid Displacement of 0.1. These displacements are applied immediately to the unknowns, and hence result in immediate mesh displacement from the initial state.
BC = DX_RS NS 100 1.0
This sample card applies the same condition above, but as a residual equation that is iterated upon with Newton’s method.
BC = DX_RS NS 100 1.0 1.0
The second float 1.0 forces this application. This approach is advisable in most situations, as the nodes are gradually moved as a part of the mesh deformation process. Sudden movements, as in the first example, can lead to folds in the mesh.
Technical Discussion#
This condition performs the same function as DX|DY|DZ boundary conditions, except that it is applied to the real-solid of a TOTAL_ALE solid mesh motion model (see Mesh Motion card). More than likely, these conditions are applied together with geometry conditions on the mesh equations, e.g. PLANE, DX, DY, GEOM, etc., on the same boundary. TOTAL_ALE mesh motion involves two sets of elasticity equations: mesh motion equations (mesh1 and mesh2), and real-solid elasticity equations (mom_solid1 and mom_solid2).
References#
GT-005.3: THE NEW TOTAL-ARBITRARY-LAGRANGIAN-EULERIAN (TALE) CAPABILITY and its applicability to coating with/on deformable media, August 6, 1999, P. R. Schunk
FORCE_RS#
BC = FORCE_RS SS <bc_id> <float1> <float2> <float3>
Description / Usage#
(WIC/VECTOR REALSOLID)
This boundary condition card applies a force per unit area (traction) on a real-solid material region (as opposed to a Lagrangian solid region), as is the case with TOTAL_ALE mesh motion type (see Mesh Motion card). The force per unit area is applied uniformly over the boundary delineated by the side set ID. The applied force is of course a vector. Definitions of the input parameters are as follows:
FORCE_RS |
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. |
<float1> |
X-component of traction in units of force/area. |
<float2> |
Y-component of traction in units of force/area. |
<float3> |
Z-component of traction in units of force/area. |
Examples#
Following is a sample card:
BC = FORCE_RS SS 10 0. 1.0 1.0
This card results in a vector traction defined by \(\vec F\) = 0.0(\(\vec ex\)) + 1.0(\(\vec ey\)) + 1.0(\(\vec ez\)) applied to the side set boundary delineated by flag 10, where the element block bounded by this boundary is of a TOTAL_ALE mesh motion type.
Technical Discussion#
It is important to note that this boundary condition can only be applied to TOTAL_ALE mesh motion types (cf. Mesh Motion card). (see FORCE for all other mesh motion types). Furthermore, it is rare and unlikely that this boundary condition be applied to ARBITRARY mesh motion regions. As an example of how this boundary condition card is used, consider the need to apply some load pressure to a real solid of a TOTAL_ALE region, like a rubber roller, so as to squeeze and drive flow in a liquid region. Some of the usage tutorials cited below will direct you to some specifics.
FAQs#
On internal two-sided side sets, this boundary condition results in double the force in the same direction.
References#
GT-005.3: THE NEW TOTAL-ARBITRARY-LAGRANGIAN-EULERIAN (TALE) CAPABILITY and its applicability to coating with/on deformable media, August 6, 1999, P. R. Schunk
SAND2000-0807: TALE: An Arbitrary Lagrangian-Eulerian Approach to Fluid- Structure Interaction Problems, P. R. Schunk (May 2000)
NORM_FORCE_RS#
BC = NORM_FORCE_RS SS <bc_id> <float1> <float2> <float3>
Description / Usage#
(WIC/VECTOR REALSOLID)
This boundary condition card applies a force per unit area (traction) on a real-solid in a TOTAL_ALE mesh region (see Mesh Motion card). The force per unit area is applied uniformly over the boundary delineated by the side set ID. The applied traction is of course a vector. Unlike the FORCE_RS boundary condition card, the vector traction here is defined in normal-tangent vector basis. Definitions of the input parameters are as follows:
NORM_FORCE_RS |
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. |
<float1> |
Normal component of traction in units of force/area. |
<float2> |
Tangential component of traction in units of force/area. |
<float3> |
Second tangential component of traction in units of force/area (in 3-D). |
This card actually applies a traction that is then naturally integrated over the entire side set of elements. Hence, the units on the floating point input must be force/area.
Examples#
The following is a sample input card:
BC = NORM_FORCE_RS SS 10 0. 1.0 1.0
This card results in a vector traction to the real-solid in a TOTAL_ALE mesh motion type (not the mesh) defined by \(\vec F\) = 0.0(\(\vec n\)) + 1.0(\(\vec t_1\)) + 1.0(\(\vec t_2\)) applied to the side set boundary delineated by flag 10. The normal vector is defined as the outward pointing normal to the surface. For internal surfaces defined by side sets which include both sides of the interface, this condition will result in exactly a zero traction, i.e., internal surface side sets must be attached to one element block only to get a net effect.
Technical Discussion#
It is important to note that this boundary condition can only be applied to TOTAL_ALE mesh motion types (cf. Mesh Motion card). As an example of how this boundary condition card is used, consider the need to apply some load pressure uniformly on the inside of a solid-membrane (like a pressurized balloon). In more advanced usage, one could tie this force to an augmenting condition on the pressure, as dictated by the ideal gas law.
This boundary condition is not used as often as the FORCE_RS or FORCE_USER_RS counterparts.
References#
No References.
REP_FORCE_RS#
BC = REP_FORCE_RS SS <bc_id> <floatlist>
Description / Usage#
(WIC/VECTOR REALSOLID)
This boundary condition card applies a force per unit area (traction) that varies as the inverse of the fourth power of the distance from a planar surface (see Technical Discussion below) on a TALE or Dynamic Lagrangian mesh region. This boundary condition can be used to impose a normal contact condition (repulsion) or attraction condition (negative force) between a planar surface and the surface of a TALE region. It differs from REP_FORCE card only in the mesh-motion type to which it applies. The force per unit area is applied uniformly over the boundary delineated by the side set ID. The applied force is a vector in the normal direction to the Lagrangian interface.
Definitions of the input parameters are as follows, where <floatlist> has five parameters:
REP_FORCE_RS |
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. |
<float1> |
Coefficient of repulsion, \(\lambda\). |
<float2> |
Coefficient a of plane equation. |
<float3> |
Coefficient b of plane equation. |
<float4> |
Coefficient c of plane equation. |
<float5> |
Coefficient d of plane equation. |
Examples#
The following is a sample input card:
BC = REP_FORCE_RS SS 10 1.e+03. 1.0 0.0 0.0 -3.0
This card results in a vector traction in the normal direction on surface side set 10 defined by \(\vec F\) = –1.0e3 ⁄ \(h^4\) where F is a force per unit area that varies with the distance h from the plane specified by 1.0x – 3.0 = 0.0 .
Technical Discussion#
The repulsive force is defined by \(\vec F\) = F(\(\vec n\)) where F is a force per unit area that varies with the distance h from a plane defined by the equation ax + by + cz + d = 0. The magnitude of the function \(\vec F\) is defined as:
The normal vector is defined as the outward pointing normal to the surface. For internal surfaces defined by side sets which include both sides of the interface, this condition will result in exactly a zero traction, i.e., internal surface side sets must be attached to one material only to get a net effect.
It is important to note that this boundary condition can only be applied to TALE mesh motion types (cf. Mesh Motion card). As an example of how this boundary condition card is used, consider the need to apply some load pressure uniformly on a surface that is large enough such that this surface never penetrates a predefined planar boundary. This condition hence can be use to impose an impenetrable contact condition.
References#
GT-005.3: THE NEW TOTAL-ARBITRARY-LAGRANGIAN-EULERIAN (TALE) CAPABILITY and its applicability to coating with/on deformable media, August 6, 1999, P. R. Schunk
FORCE_USER_RS#
BC = FORCE_USER_RS SS <bc_id> <float1>...<floatn>
Description / Usage#
(WIC/VECTOR REALSOLID)
This boundary condition card applies a user-defined force per unit area (traction) on a TOTAL_ALE real solid region (see Mesh Motion card). It differs from its counterpart FORCE_USER only in the type of material to which the force is applied, as described on the Mesh Motion card. The functional form of the force is programmed in the function force_user_surf in bc_user.c, and can be made a function of any of the independent or dependent variables of the problem, including position (see example below). The force per unit area is applied to boundary delineated by the side set ID. Definitions of the input parameters are as follows:
FORCE_USER_RS |
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. |
<float1>…<floatn> |
Parameters list (length arbitrary) for parameterizing the user defined force. These parameters are accessed through the p[]array in force_user_surf. |
Examples#
The input card
BC = FORCE_USER_RS SS 3 {delta_t} 0. 1000.0 0.
used in conjuction with the following snippet of code in force_user_surf:
/* Comment this out FIRST!!!!! */
/* EH(-1,"No FORCE_USER model implemented"); */
/**************************** EXECUTION BEGINS
*******************************/
if (time <= p[0])
{
func[0] = p[1]*time/p[0];
func[1] = p[2]*time/p[0];
func[2] = p[3]*time/p[0];
}
else
{
func[0] = p[1];
func[1] = p[2];
func[2] = p[3];
}
applies a time-dependent force ramped from zero to 1000.0 in the +y direction over the time period {delta_t}. Note how p[0] is the time period, viz. {delta_t}, over which the force is ramped up.
Technical Discussion#
Used commonly to apply a force per unit area to an external surface of a solid region (TOTAL_ALE type, cf. FORCE_USER), that is nonconstant, viz. time varying or spatially varying. The FORCE_RS and NORM_FORCE_RS boundary conditions can be used for constant forces. This condition is applied as a weak integrated condition in Goma, and hence will be additive with others of its kind.
References#
No References.
SOLID_FLUID_RS#
BC = SOLID_FLUID_RS SS <bc_id> <integer1> <integer2> [float]
Description / Usage#
(PCC/VECTOR REALSOLID)
Used for fluid-structure interaction problems, the SOLID_FLUID_RS condition equates the normal traction between adjacent fluid and solid materials. (By “normal traction” we mean the tangential and normal force components, per unit area.) This condition is only to be used on boundaries between regions of ARBITRARY mesh motion with fluid-momentum equations and of TOTAL_ALE mesh motion (cf. SOLID_FLUID boundary condition card for LAGRANGIAN mesh motion regions), with solid momentum equations (or mesh equations) - see Mesh Motion and EQ cards. All elements on both sides of the interface must have the same element type (the same order of interpolation and basis functions) e.g., Q1 or Q2. Also, such interfaces must include element sides from both sides of the interface in the defining side set.
Definitions of the input parameters are as follows:
SOLID_FLUID_RS |
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. |
<integer1> |
Element block ID of the solid phase (of TOTAL_ALE motion type) from the EXODUS II database. |
<integer2> |
Element block ID of the liquid phase from the EXODUS II database. |
[float] |
Scale factor for stress balance for nondimensionalization. This parameter, a multiplier on the liquid phase contribution, is optional; the default is 1.0. |
Examples#
The following set of input cards is a sample specification for a fluid-structure interaction problem:
BC = SOLID_FLUID_RS SS 5 2 1
BC = NO_SLIP_RS SS 5 2 1
BC = KIN_DISPLACEMENT SS 5 2
In this example, side set 5 is a boundary between a solid rubber blade and a liquid; the material in element block 2 is the blade, and the material in element block 1 is the fluid. Along the blade, a companion boundary condition is applied to ensure no slip on the same side set. Also, because this condition involves a TOTAL_ALE mesh region, a KIN_DISPLACEMENT boundary condition is needed on the same side set to force the solid boundary to follow the side set.
Technical Discussion#
The functional form of the SOLID_FLUID_RS boundary condition is:
where \(\underline{T}\) is the fluid phase stress tensor given by any one of the specified fluid-phase constitutive equations, and \(\underline{\sigma}\) is the real-solid solid phase stress tensor, also given by any one of the solid-phase constitutive equation (see Mat file specifications). \(\lambda\) is a scaling factor that defaults to unity (and is usually best taken as such unless some scaling is invoked). With this boundary condition, the local residual and Jacobian contributions from the fluid mechanics momentum equations (on the ARBITRARY side of the boundary) are added into the weak form of the residual and Jacobian entries for the real-solid solid mechanics equations (viz. the EQ = mom_solid options on the real-solid TOTAL_ALE side of the boundary).
TOTAL_ALE mesh motion regions cannot be porous and deformable (as of 11/19/ 2001).
References#
GT-005.3: THE NEW TOTAL-ARBITRARY-LAGRANGIAN-EULERIAN (TALE) CAPABILITY and its applicability to coating with/on deformable media, August 6, 1999, P. R. Schunk
SAND2000-0807: TALE: An Arbitrary Lagrangian-Eulerian Approach to Fluid- Structure Interaction Problems, P. R. Schunk (May 2000)
SPLINEXYZ_RS#
Description / Usage#
(PCC/MESH)
This card is used to specify a general surface (solid) boundary description for TOTAL_ALE real solid equations (see Mesh Motion card). These boundary conditions are tantamount to SPLINE_RS , except that they do not invoke a vector residual rotation into normal-tangential form. Instead, SPLINEX_RS invokes the geometric boundary condition on the x-component of the real solid equation residual, and so on. The card requires user-defined subroutines. Templates for these routines are currently located in the routine “user_bc.c”. Both a function routine, fnc, for function evaluation and corresponding routines dfncd1, dfncd2, and dfncd3 for the derivative of the function with respect to global coordinates are required. Note that it takes an arbitrary number of floating-point parameters, depending on the user’s needs.
Definitions of the input parameters are as follows:
{bc_name} |
Boundary condition name that defines the general surface; the options are:
|
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. |
[floatlist] |
Constants to parameterize any f(x,y,z) = 0 function input in user-defined routine fnc. |
Examples#
The following is a sample input card:
BC = SPLINEZ_RS SS 10 1.0 100. 20.0 1001.0 32.0
applies a user-defined distinguishing condition parameterized by the list of floating points to the boundary defined by side set 10. Most importantly, the condition replaces the Z-component of the real solid equation.
Technical Discussion#
The mathematical form of this distinguishing condition is arbitrary and is specified by the user in the fnc routine in user_bc.c. Derivatives of the user-specified function must also be provided so as to maintain strong convergence in the Newton iteration process. These functions are located next to fnc and are named dfncd1, dfncd2, and dfncd3.Several examples for simple surfaces exist in the template routine. In three dimensions, usage needs to be completed with a companion ROT input card which directs the equation application of the condition, even though rotations are not actually performed.
References#
No References.
SPLINE_RS#
BC = SPLINE_RS SS <bc_id> [floatlist]
Description / Usage#
(PCC/VECTOR REALSOLID)
This card is used to specify a general surface (solid) boundary description for TOTAL_ALE type mesh motion (see Mesh Motion card). Like most other distinguishing conditions, this condition causes the real-solid equations, viz. solid1, solid2, and solid3, to be rotated into boundary normal-tangential form. The card requires user-defined subroutines. Templates for these routines are currently located in the routine “user_bc.c”. Both a function routine, fnc, for function evaluation and corresponding routines dfncd1, dfncd2, and dfncd3 for the derivative of the function with respect to global coordinates are required. . Note that it takes an arbitrary number of floating-point parameters, depending on the user’s needs.
Definitions of the input parameters are as follows:
SPLINE_RS |
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. |
[floatlist] |
Constants to parameterize any f(x,y,z) = 0 function input in user-defined routine fnc. |
Examples#
The following is a sample input card:
BC = SPLINE_RS SS 10 1.0 100. 20.0 1001.0 32.0
applies a user-defined distinguishing condition, parameterized by the list of five floating point values, to the boundary defined by side set 10.
Technical Discussion#
This condition is applied to the normal component of the real solid equations along a boundary in two dimensions; in three dimensions application needs to be further directed with the ROT conditions. Examples of typical distinguishing conditions can be found in user_bc.c in the fnc routine and companion derivative routines.
References#
No References.
FRICTION_RS#
BC = FRICTION_RS SS <bc_id> <float1> [integer1]>
Description / Usage#
(WIC/VECTOR REAL SOLID)
This boundary condition card applies a force per unit area (traction) on the TOTAL_ALE solid mechanics equations. The force per unit area is applied according to Coulomb’s friction law over the boundary delineated by the side set ID. The applied traction is of course a vector. The vector traction is defined in normal-tangent vector basis. Definitions of the input parameters are as follows:
FRICTION_RS |
Name of the boundary condition (<bc_name>). |
SS |
Type of boundary condition (<bc_type>), where SS denotes side set. |
<bc_id> |
The boundary flag identifier, or a side set number which is an integer that identifies the boundary location (side set in EXODUS II) in the problem domain. |
<float1> |
\(\mu\), Coulombic coefficient of friction. |
[integer1] |
optional specification of the element block id to which this condition will be applied. |
This card actually applies a traction that is then naturally integrated over the entire side set of elements.
Examples#
Following is a sample card:
BC = FRICTION_RS SS 10 0.1 2
Technical Discussion#
Important note: this boundary condition can only be applied to TOTAL_ALE mesh motion types (cf. Mesh Motion card). For other mesh motion types, refer to FRICTION.
This condition should be utilized in conjunction with a rotated condition such as SPLINE_RS in order to apply a tangential force which is proportional to the normal force;
where \(\mu\) is the coefficient of friction and \(\underline{v}\) is the velocity of the convected solid. Note that the direction of the frictional force is determined by the velocity direction.