Table of Contents
12. Shell Elements and Shell Walls - ShellElem,ShellWall
The ShellElem and ShellWall modules together provide a comprehensive
set of features for computing and visualizing shell element geometry and
results. Designed primarily for applications in solid mechanics, these
modules also have use in other fields of engineering analysis, such as
thermodynamics, in which "shell" assumptions may be made.
In general, a shell element is a specialization of a three dimensional volume
in which a given direction, the shell thickness, may be assumed to be small
with respect to the other two directions, the shell surface.
The ShellWall module
is designed to manage the thickness properties of the shell.
The ShellElem module models the complete shell element by managing the surface
properties of the shell explicitly
and the thickness properties using a ShellWall object
as an attribute object.
Table of Contents
12.1 Shell Elements - ShellElem
Use the ShellElem module to draw complete shell elements.
Two basic representations may be selected when drawing shell elements.
The simplest representation
draws the shell reference surface and one or more icons
which represent the thickness properties of the shell. The icons are drawn
by the ShellWall attribute object and show the direction of the shell
thickness, local coordinate systems and the layer thicknesses and offsets.
The second representation reconstructs the three dimensional nature of the shell
to some degree by drawing the top and bottom surfaces of the shell and filling
the thickness of the shell edges. The laminated nature of the shell thickness
properties may be color coded. The sense of the normals of the polygons
used for drawing the shell bottom face are reversed so that back face culling
may be used to eliminate hidden surface artifacts.
If just the reference surface of the shell element is to be drawn, it is
preferable to use the Face module which will draw this simple representation
of a shell more efficiently.
The ShellElem module does not directly draw results quantities on shell
surfaces, however it provides functions to compute coordinates and results at
shell surfaces in a form which can be easily directed to an isovalue, marker
or value object for drawing the results quantities in some way.
The functions associated with a ShellElem object are the following.
Instance a ShellElem object using vis_ShellElemBegin.
Set attribute objects using vis_ShellElemSetObject.
ShellWall and VisContext attribute objects must be set for any
computational and drawing methods.
The ShellWall object defines the thickness properties of the
shell element.
Tapered shells may be modelled by specifying separate scale factors to be
applied to the shell wall geometry at each shell corner point. These scale
factors are set using vis_ShellElemSetCornerFactors.
Intermediate nodes on the
shell, if they exist, are given scale factors which linearly vary between the
corner points.
Use vis_ShellElemDirCos to compute the local coordinate system direction
cosine matrix at the shell centroid or shell nodes.
Use vis_ShellElemCoords to compute the coordinates of the shell nodes
at a shell wall point.
A complete shell element is drawn using vis_ShellElemCurv. If the shell
topology has been set to VIS_SHAPELINE by vis_ShellElemSetTopology, then
only a single shell wall is drawn. If the shell shape is
VIS_SHAPETRI or VIS_SHAPEQUAD
then a specified number of shell walls and the shell reference surface or
top and bottom shell surfaces are drawn. Shells may be drawn with up
to 13 by 13 nodes along the surface of the shell.
Axisymmetric shells
may be drawn by computing a series of "nodes" (less than or equal
to 13) which approximate the curved shell in space.
Table of Contents
12.2 Attribute Objects
A ShellElem object uses ShellWall, DrawFun,
VisContext, ColorMap and TransMap
objects to define attributes to generate a shell element visualization
entity.
The ShellWall object is required for any drawing or computation
functions.
The DrawFun and VisContext
objects are required for any drawing functions.
The ColorMap and TransMap are optional.
A ShellElem object uses the following VisContext components.
- ElemAxes
- Element local coordinate system axes flags
- ElemLoc
- Element locations at which element coordinate systems and
shell wall icons are drawn.
- ElemRep
- Element representation. VIS_ELEMREP_SOLID
draws the top and bottom surfaces
of the shell element and fills the shell thickness
along the edges of the shell.
The coloring of the shell thickness fill depends upon the
SHELLELEM_WALL parameter set using vis_ShellElemSetParami.
If enabled,
the layered nature of a shell through the thickness along
the shell edges may be represented.
In this case the color settings of the ShellWall attribute
object are used to determine coloring of the shell thickness
fill.
if disabled, the shell thickness is filled using the
specified Color.
The element coordinate system axes are drawn.
Any other element representation, such as VIS_ELEMREP_SEMI
draws the shell reference surface as well as
element coordinate
system axes and shell wall icons at the specified element
locations.
The representation of the shell wall icons and shell wall
layers is determined by
the ShellWall attribute object.
- Color
- Color of reference surface or top surfaces and
possibly the filled shell thickness.
If the SHELLELEM_WALL parameter is set then the color of the
filled shell thickness is determined by by the color
settings of the ShellWall attribute object.
- MinorColor
- Color of bottom surface.
- Edge
- Edge flag, the edges of the shell surfaces are drawn.
If the SHELLELEM_WALL parameter is set then the boundaries
between shell layers are drawn.
- Fill
- Fill flag, the surfaces of the shell are drawn and
the shell thickness is filled.
- LineWidth
- Line width of edges
- AColor
- Color of edges.
- MinorLineWidth
- Line width of element axes.
- Refinement
- Level of refinement
- Shade
- Flag to apply light source shading
- Shrink
- Shrink factor for shell surface directions.
- Size
- Length of coordinate system axes.
- Trans
- Surface transparency
- XColor
- Color of coordinate system x axes
- YColor
- Color of coordinate system y axes
- ZColor
- Color of coordinate system z axes
The result of drawing a curved triangular shell element with 4 layers
is illustrated in Figure 11-1a.
The ElemRep is set to VIS_ELEMREP_SEMI and the ElemLoc
is set to VIS_ELEMLOC_CENTROID.
The reference surface and shell wall icon of the shell element are drawn.
Figure 11-1b illustrates drawing the same shell element with
the ElemRep is set to VIS_ELEMREP_SOLID and the SHELLELEM_WALL parameter
has been enabled using vis_ShellElemSetParami.
The top and bottom surfaces of the shell as well as the shell wall layers
along the edges of the shell element have been drawn. The shell wall layers
have been color coded to the shell wall layer id.
Figure 11-1a, Draw Shell Wall and Reference Surface of Shell Element
Figure 11-1b, Draw Tapered Triangular Shell Element with Layers
Table of Contents
12.3 Function Descriptions
The currently available ShellElem functions are described in
detail in this section.
Table of Contents
, ShellElem
NAME
*vis_ShellElemBegin - create an instance of an ShellElem object
C SPECIFICATION
vis_ShellElem *vis_ShellElemBegin ()
ARGUMENTS
None
FUNCTION RETURN VALUE
The function returns a pointer to the newly created ShellElem object. If
the object creation fails, NULL is returned.
DESCRIPTION
Create an instance of an ShellElem object. Memory is allocated for the object
private data and the pointer to the data is returned. By default all
attribute object pointers are NULL.
Destroy an instance of a ShellElem object using
void vis_ShellElemEnd (vis_ShellElem *shellelem)
Return the current value of a ShellElem object error flag using
Vint vis_ShellElemError (vis_ShellElem *shellelem)
Table of Contents
, ShellElem
NAME
vis_ShellElemCoords - compute shell coordinates
C SPECIFICATION
void vis_ShellElemCoords (vis_ShellElem *shellelem,
Vint id,
Vint reflectflag,
Vfloat x[][3],
Vint vflag, Vfloat v[][3],
Vfloat xp[][3])
INPUT ARGUMENTS
shellelem Pointer to ShellElem object.
id Shell wall point id.
reflectflag Reverse sense of output coordinates in array xp.
=VIS_OFF Do no reverse sense.
=VIS_ON Reverse sense.
x Array of point locations defining shell surface.
vflag User supplied shell normal flag
=VIS_NODATA No normals provided
=VIS_VERTEXDATA Vertex normals are provided
v Array of user supplied shell normals
OUTPUT ARGUMENTS
xp Array of point locations of shell at shell wall point id.
DESCRIPTION
Compute the coordinates of a shell surface passing through the shell wall point
specified by id. If normals, v, are not provided the thickness direction
is assumed to be normal to the shell reference surface specified by x.
Table of Contents
, ShellElem
NAME
vis_ShellElemCurv - draw shell element
C SPECIFICATION
void vis_ShellElemCurv (vis_ShellElem *shellelem,
Vfloat x[][3],
Vint vflag, Vfloat v[][3])
INPUT ARGUMENTS
shellelem Pointer to ShellElem object.
x Array of point locations defining shell reference surface.
vflag User supplied shell z' axis normal flag
=VIS_NODATA No normals provided
=VIS_VERTEXDATA Vertex normals are provided
v Array of user supplied vertex normals
OUTPUT ARGUMENTS
None
ERRORS
VIS_ERROR_NULLOBJECT is generated if ShellWall and VisContext
attribute objects have not been set using vis_ShellElemSetObject.
DESCRIPTION
Draw a shell element with reference points, x, and optional user supplied
normals v.
If vertex normals are not provided, normals are calculated from the input
reference geometry. Normals are used to construct the edge "faces" of the
shell element. The user can input vertex normals to represent shell elements
for which the vertex normals are not truely normal to the shell reference
surface.
If the shell wall is to be properly drawn
be sure that the wall properties have been computed or set in the
ShellWall attribute object.
Table of Contents
, ShellElem
NAME
vis_ShellElemDirCos - compute shell local direction cosines
C SPECIFICATION
void vis_ShellElemDirCos (vis_ShellElem *shellelem,
Vint centroidflag,
Vfloat x[][3],
Vfloat tm[][3][3])
INPUT ARGUMENTS
shellelem Pointer to ShellElem object.
centroidflag Compute direction cosine matrix at shell centroid flag.
=VIS_OFF Return direction cosine matrices at shell nodes
=VIS_ON Return direction cosine matrix at shell centroid
x Array of point locations defining shell surface.
OUTPUT ARGUMENTS
tm Array of direction cosine matrices at the shell nodes or
a single direction cosine matrix at the shell centroid.
DESCRIPTION
Compute the direction cosine matrices of the shell element local coordinate
system.
The local coordinate system is determined by the local system
convention set using vis_ShellElemSetLocalSystem.
Table of Contents
, ShellElem
NAME
vis_ShellElemSetCornerFactors - set shell corner node wall factors
C SPECIFICATION
void vis_ShellElemSetCornerFactors (vis_ShellElem *shellelem,
Vfloat factors[])
INPUT ARGUMENTS
shellelem Pointer to ShellElem object.
factors Scale factors to be applied to the shell corner node walls.
OUTPUT ARGUMENTS
None
DESCRIPTION
Set shell element corner factors. By default, the corner factors are unity. In
this case the shell element has a constant thickness. It is possible
to model tapered shells by setting different scale factors at the corners of the
shell where factors[0], factors[1], etc.
are applied to the shell wall at the first, second, etc. corners of the
shell element respectively. Three factors are required for a triangle, four
factors for a quadrilateral shell element.
The shell wall factors are assumed to
vary linearly between the corner points.
These factors are used only if a ElemRep of VIS_ELEMREP_SOLID is specified
in the visualization context. The default factors are unity.
Table of Contents
, ShellElem
NAME
vis_ShellElemSetEdgeFlag - set edges to be drawn
C SPECIFICATION
void vis_ShellElemSetEdgeFlag (vis_ShellElem *shellelem,
Vint flag)
INPUT ARGUMENTS
shellelem Pointer to ShellElem object.
flag Element edge bit flags to indicate which shell edges are to
have walls drawn.
OUTPUT ARGUMENTS
None
DESCRIPTION
Set shell element edge flag. The flag argument contains bit flags indicating
which shell element edges are to be drawn.
For example, to draw all edges of any triangular or quadrilateral shell
set flag = 15; to draw the first edge only set flag = 1.
This flag is used only if a ElemRep of VIS_ELEMREP_SOLID is specified.
in the visualization context. The default edge flag is 15.
Table of Contents
, ShellElem
NAME
vis_ShellElemSetLocalSystem - set local coordinate system convention
C SPECIFICATION
void vis_ShellElemSetLocalSystem (vis_ShellElem *shellelem,
Vint type,
Vfloat vec[],
Vfloat angle)
INPUT ARGUMENTS
shellelem Pointer to ShellElem object.
type Local system convention
=SYS_ELEMSYS_STANDARD Standard orientation
=SYS_ELEMSYS_POSITION Orient to position vector
=SYS_ELEMSYS_GLOBALPROJECT Orient to global axis
=SYS_ELEMSYS_VECTOR Orient to direction vector
=SYS_ELEMSYS_VECTORELEMNODE Orient to nodal direction vectors
=SYS_ELEMSYS_BISECTOR Orient to element bisector
=SYS_ELEMSYS_MIDPOINT Orient to element edge midpoints
=SYS_ELEMSYS_FIRSTEDGE Orient to element first edge
vec Orientation position or direction vector(s)
angle Angle to rotate shell x',y' axes about the shell z'
axis in degrees.
OUTPUT ARGUMENTS
None
ERRORS
VIS_ERROR_ENUM is generated if an improper type is input.
DESCRIPTION
Specify the convention to be used to construct the orientation of the shell
element local x',y',z' coordinate system with respect to the shell reference
surface. The z' axis is always constructed to be normal to the shell
reference surface. The orientation of the x' and y' axes in the plane of the
shell reference surface is determined by type.
The vec array is only used if the specified type requires position or
direction vectors.
An additional rotation of the x',y' axes about the z' axis can be specified
with angle.
By default the local system convention is SYS_ELEMSYS_STANDARD with
angle set to 0.
For a description of element coordinate systems, type, and associated
orientation vector data, please see
1.4 Element Coordinate Systems
Table of Contents
, ShellElem
NAME
vis_ShellElemSetObject - set pointers to attribute objects
C SPECIFICATION
void vis_ShellElemSetObject (vis_ShellElem *shellelem,
Vint objecttype,
Vobject *object)
INPUT ARGUMENTS
shellelem Pointer to ShellElem object.
objecttype The name of the object type to be set.
=VIS_COLORMAP ColorMap object
=VGL_DRAWFUN DrawFun object
=VIS_SHELLWALL ShellWall object
=VIS_TRANSMAP TransMap object
=VIS_VISCONTEXT VisContext object
object Pointer to the object to be set.
OUTPUT ARGUMENTS
None
ERRORS
VIS_ERROR_OBJECTTYPE is generated if an improper objecttype is specified.
DESCRIPTION
Set a pointer to an attribute object.
The attribute ShellWall object must be set before any shell drawing or
computation functions are called.
Table of Contents
, ShellElem
NAME
vis_ShellElemSetParami - set shell element display parameters
C SPECIFICATION
void vis_ShellElemSetParami (vis_ShellElem *shellelem,
Vint ptype,
Vint iparam)
INPUT ARGUMENTS
shellelem Pointer to ShellElem object.
ptype Type of display parameter to set
=SHELLELEM_WALL Draw shell wall layers
iparam Specifies the integer value that ptype will be set to.
=VIS_OFF Turn parameter off
=VIS_ON Turn parameter on
OUTPUT ARGUMENTS
None
ERRORS
VIS_ERROR_ENUM is generated if an improper ptype is specified.
DESCRIPTION
Set shell element display parameters.
The parameter SHELLELEM_WALL draws the shell wall layers.
This flag is used only if a ElemRep of VIS_ELEMREP_SOLID is specified.
By default SHELLELEM_WALL is set to VIS_ON.
Table of Contents
, ShellElem
NAME
vis_ShellElemSetTopology - set shell element topology
C SPECIFICATION
void vis_ShellElemSetTopology (vis_ShellElem *shellelem,
Vint shape,
Vint maxi,
Vint maxj)
INPUT ARGUMENTS
shellelem Pointer to ShellElem object.
shape Element shape parameter
=VIS_SHAPELINE Line
=VIS_SHAPETRI Triangle
=VIS_SHAPEQUAD Quadrilateral
maxi The number of points along the i direction.
If maxi = 0 then the linear
element form of the specified shape is assumed.
maxj The number of points along the j direction.
If maxj = 0 and 2 <= maxi <= 4, then a Serendipity
finite element is assumed.
If 2 <= maxj <= 4 and 2 <= maxi <= 4, then a Lagrange
finite element is assumed.
For triangle shapes, set either maxj = 0 or maxj = maxi.
If shape is VIS_SHAPELINE, then maxj is ignored.
OUTPUT ARGUMENTS
None
ERRORS
VIS_ERROR_VALUE is generated if a maxi less than zero is input.
VIS_ERROR_ENUM is generated if an improper shape is input.
DESCRIPTION
Set shell element topology.
All subsequent draw and compute methods such as vis_ShellElemCurv
assume elements of this topology.
Refinement is only applied to Serendipity and Lagrange finite element
topologies.
If maxi or maxj > 4 then
piecewise linear interpolation is used within each element.
See section VisTools, Computational Cells for a description of element
topology conventions.
Table of Contents
12.4 Shell Wall Properties - ShellWall
Use the ShellWall module to manage, compute and draw the
through-the-thickness properties of shell elements.
The ShellWall module can represent a laminated shell with up to 256 layers
with independent material orientations and material identifiers specified for
each layer. Functions are provided to draw a simple line and point
representation of the shell wall layup and/or the shell wall coordinate
system and material orientation axes.
Overall geometric and laminate material stiffness properties of the defined
laminate may be computed.
The ShellWall module may also be used as an attribute object for a
ShellElem object. In this case, shell wall geometry is drawn indirectly by
calling the drawing methods of the ShellElem object.
The functions associated with a ShellWall object are the following.
Instance a ShellWall object using vis_ShellWallBegin.
Once a ShellWall is instanced,
define the shell wall construction type using vis_ShellWallDef.
Like the BeamSect module, the ShellWall module allows three basic types
of shell wall constructions to be defined; 1) built-in parameterized
geometries, 2) user defined laminate geometries using points and line segments
and 3) general shell wall properties such as
overall thickness and eccentricity and material stiffness.
If a built-in parameterized geometry such as SHELLWALL_MONOCOQUE is
defined, the geometry parameters or dimensions are input using
vis_ShellWallSetDimensions. User defined laminates using points and line
segments, SHELLWALL_GEOMETRY, are
input using vis_ShellWallSetPoint, vis_ShellWallSetLayer
and vis_ShellWallSetElasProp.
General shellwall properties, SHELLWALL_PROPS, are input using
vis_ShellWallSetProps.
A generic diagram of a layered shell wall appears below illustrating the
shell wall z axis system, and layer numbering convention.
Use vis_ShellWallSetParami to set display options to draw the layer
material orientation axes, etc.
Figure 11-2, Diagram of Shell Wall with N Layers
The shell wall geometry, coordinate system and/or layer material orientations
may be drawn using vis_ShellWallDraw.
General shell wall properties and material stiffnesses may be computed using
vis_ShellWallProps. The user may access computed or previously
defined shell wall properties using vis_ShellWallGetProps.
The function vis_ShellWallStrsStrn computes the tensor stress
and strain at a point within a layer given the midsurface
strains and curvatures.
Table of Contents
12.5 Attribute Objects
A ShellWall object uses DrawFun, VisContext, Levels and ColorMap
objects to define attributes to generate a shell wall visualization
entity.
The DrawFun and VisContext
objects are required for any drawing operations.
The Levels object is required for drawing shell walls with layer color
mapping active.
The ColorMap object is optional.
A ShellWall object uses the following VisContext components.
- Color
- Color of line drawn in thickness direction if not mapped
to color.
- Spot
- Spot flag, the shell wall points are drawn.
- PointSize
- Point size of shell wall points.
- LineWidth
- Line width of thickness line
- MinorLineWidth
- Line width of coordinate system axes
- MapColor
- Map shell layer id or material id to color for drawing
shell thickness. Use vis_ShellWallSetParami to toggle
between color mapping to shell layer id or material id.
- MinorColor
- Color of shell wall points.
- Scale
- Scale factor for shell wall point z coordinates.
- Size
- Length of shell wall basic coordinate system axes.
The length of layer material orientation axes is .707*Size.
- XColor
- Color of coordinate system x axes
- YColor
- Color of coordinate system y axes
Table of Contents
12.6 Function Descriptions
The currently available ShellWall functions are described in
detail in this section.
Table of Contents
, ShellWall
NAME
*vis_ShellWallBegin - create an instance of an ShellWall object
C SPECIFICATION
vis_ShellWall *vis_ShellWallBegin ()
ARGUMENTS
None
FUNCTION RETURN VALUE
The function returns a pointer to the newly created ShellWall object. If
the object creation fails, NULL is returned.
DESCRIPTION
Create an instance of an ShellWall object. Memory is allocated for the object
private data and the pointer to the data is returned. By default all
attribute object pointers are NULL.
Destroy an instance of a ShellWall object using
void vis_ShellWallEnd (vis_ShellWall *shellwall)
Return the current value of a ShellWall object error flag using
Vint vis_ShellWallError (vis_ShellWall *shellwall)
Table of Contents
, ShellWall
NAME
vis_ShellWallCoords - compute coordinates on shell wall
C SPECIFICATION
void vis_ShellWallCoords (vis_ShellWall *shellwall,
Vint id,
Vfloat x[][3],
Vfloat v[][3],
Vfloat xp[][3])
INPUT ARGUMENTS
shellwall Pointer to ShellWall object.
id Shell wall point id.
x Location of origin of shell wall z axis.
v Normal vector in direction of shell wall z axis in space.
OUTPUT ARGUMENTS
xp Location of shell wall point id.
ERRORS
VIS_ERROR_VALUE is generated if an improper id is input.
DESCRIPTION
Compute the coordinates of a shell wall point, id, given a position, x,
and orientation, v, of the shell wall z axis in space.
If the orientation vector is not normalized to unity, the shell
wall will be correspondingly scaled in space.
Table of Contents
, ShellWall
NAME
vis_ShellWallDef - define shell wall type
C SPECIFICATION
void vis_ShellWallDef (vis_ShellWall *shellwall,
Vint type)
INPUT ARGUMENTS
shellwall Pointer to ShellWall object.
type Shell wall type
=SHELLWALL_GEOMETRY Laminated wall
=SHELLWALL_LAMINATE Laminated wall
=SHELLWALL_MONOCOQUE Single layer wall
=SHELLWALL_PSHELL NASTRAN PSHELL bulk data specification
=SHELLWALL_PROPS Generalized wall properties
OUTPUT ARGUMENTS
None
ERRORS
VIS_ERROR_ENUM is generated if an improper type is specified.
DESCRIPTION
Define the type of shell wall construction to be represented.
The types SHELLWALL_GEOMETRY and SHELLWALL_LAMINATE are essentially
equivalent, they provide two different ways to specify a laminated shell
wall construction.
If type is input as SHELLWALL_GEOMETRY, then the user specifies a layered
shell by defining point locations, layers
and material properties using
vis_ShellWallSetPoint, vis_ShellWallSetLayer and
vis_ShellWallSetElasProp respectively.
If type is
SHELLWALL_LAMINATE
the user must enter the shell wall dimensions and material identifiers
using vis_ShellWallSetLaminate and material properties using
vis_ShellWallSetElasProp.
If type is
SHELLWALL_MONOCOQUE or SHELLWALL_PSHELL
the user must enter the shell wall dimensions and material identifiers
using vis_ShellWallSetDimensions and material properties using
vis_ShellWallSetElasProp.
If type is
SHELLWALL_PROPS, the user must enter the overall thickness, eccentricity and
material stiffness matrices explicitly using vis_ShellWallSetProps.
Inquire of defined type as an output argument using
void vis_ShellWallInq (vis_ShellWall *shellwall,
Vint *type)
Table of Contents
, ShellWall
NAME
vis_ShellWallDraw - draw shell wall icon
C SPECIFICATION
void vis_ShellWallDraw (vis_ShellWall *shellwall,
Vfloat xs[3],
Vfloat tm[3][3])
INPUT ARGUMENTS
shellwall Pointer to ShellWall object.
xs Location of shell wall thickness coordinate z = 0.
tm Orientation of shell wall basic coordinate system.
OUTPUT ARGUMENTS
None
DESCRIPTION
Draw a shell wall icon at xs with orientation tm.
The icon consists of lines and points which
represent the shell wall geometry and a series of coordinate axes which
represent the basic shell wall coordinate system and the orientation of the
material properties in each layer.
If shell wall geometry has been defined then points are drawn at the end points
of the shell layers and lines are drawn connecting the layer end points.
The layer lines may be color mapped to the layer id.
In addition, if the appropriate display parameters have been set using
vis_ShellWallSetParami,
axes are drawn to represent the basic shell wall coordinate
system and/or material orientation at each layer.
If only shell wall geometry is to be drawn (no coordinate axes), then only the
z' orientation need appear in the tm matrix, ie. the x,y,z coordinates
of a unit vector in the z' direction tm[2][0], tm[2][1], tm[2][2].
Table of Contents
, ShellWall
NAME
vis_ShellWallGetNum - get number of points and layers
C SPECIFICATION
void vis_ShellWallGetNum (vis_ShellWall *shellwall,
Vint *npoints,
Vint *nlayers)
INPUT ARGUMENTS
shellwall Pointer to ShellWall object.
OUTPUT ARGUMENTS
npoints Number of points defined
nlayers Number of layers defined
DESCRIPTION
Return the number of shell wall geometry points and layers defined.
The points and layers may have been explicitly specified using
vis_ShellWallSetPoint and vis_ShellWallSetLayer or implicitly defined
as a built-in wall geometry using vis_ShellWallSetDimensions.
Information about individual points and layers may be returned using
vis_ShellWallGetPoint and vis_ShellWallGetLayer.
Table of Contents
, ShellWall
NAME
vis_ShellWallProps - compute shell wall properties
C SPECIFICATION
void vis_ShellWallProps (vis_ShellWall *shellwall)
INPUT ARGUMENTS
shellwall Pointer to ShellWall object.
OUTPUT ARGUMENTS
None
ERRORS
VIS_ERROR_OPERATION is generated if no shellwall geometry has been defined.
VIS_ERROR_OPERATION is generated if no material properties have been defined.
VIS_ERROR_VALUE is generated if material properties are undefined for
a particular layer.
DESCRIPTION
Compute the geometric and material stiffness properties of the shell wall.
The computed properties will replace any previously computed properties.
The geometric properties consist of total thickness and offset to shellwall
midsurface. Material stiffness properties consist of the shell wall
extensional, coupling, bending and transverse shear stiffness matrices.
Material stiffness properties are only computed if material properties have
been defined using vis_ShellWallSetElasProp.
Use vis_ShellWallGetProps to return the computed shell wall properties.
The shell wall properties may be explicitly set using vis_ShellWallSetProps.
Table of Contents
, ShellWall
NAME
vis_ShellWallSetDimensions - set dimensions of built-in geometries
C SPECIFICATION
void vis_ShellWallSetDimensions (vis_ShellWall *shellwall,
Vfloat dimes[],
Vfloat phis[],
Vint mids[])
void vis_ShellWallSetDimensionsdv (vis_ShellWall *shellwall,
Vdouble dimes[],
Vdouble phis[],
Vint mids[])
INPUT ARGUMENTS
shellwall Pointer to ShellWall object.
dimes Dimensions of wall.
phis Material orientation angles in degrees
mids Material property ids.
OUTPUT ARGUMENTS
None
ERRORS
VIS_ERROR_OPERATION is generated if the shell type as defined by
vis_ShellWallDef is not SHELLWALL_MONOCOQUE or SHELLWALL_PSHELL.
DESCRIPTION
Set dimensions and material orientation angles and ids for a built-in
shell wall type.
The number and type of dimensions required are section dependent as defined
by vis_ShellWallDef. The dimensions and material identifiers required
by the SHELLWALL_PSHELL type are as defined by the NASTRAN PSHELL bulk
data specification.
MONOCOQUE PSHELL
dimes[0] = t t
dimes[1] = 12I/t**3
dimes[2] = ts/t
phis[0] = phi phi
mids[0] = mid mid1
mids[1] = mid2
mids[2] = mid3
mids[3] = mid4
Table of Contents
, ShellWall
NAME
vis_ShellWallSetLaminate - set laminate properties
C SPECIFICATION
void vis_ShellWallSetLaminate (vis_ShellWall *shellwall,
Vfloat ecc,
Vint nlayers,
Vfloat thks[],
Vfloat phis[],
Vint mids[])
void vis_ShellWallSetLaminatedv (vis_ShellWall *shellwall,
Vdouble ecc,
Vint nlayers,
Vdouble thks[],
Vdouble phis[],
Vint mids[])
INPUT ARGUMENTS
shellwall Pointer to ShellWall object.
ecc Offset of shell midsurface from shell reference surface
nlayers Number of layers, nlayers > 0
thks Layer thicknesses
phis Material orientation angles in degrees
mids Material property ids.
OUTPUT ARGUMENTS
None
ERRORS
VIS_ERROR_OPERATION is generated if the shell type as defined by
vis_ShellWallDef is not SHELLWALL_LAMINATE.
VIS_ERROR_VALUE is generated if an improper nlayers is specified.
DESCRIPTION
Set laminate properties.
Table of Contents
, ShellWall
NAME
vis_ShellWallSetElasProp - set elastic material properties
C SPECIFICATION
void vis_ShellWallSetElasProp (vis_ShellWall *shellwall,
Vint id,
Vint type,
Vfloat material[])
void vis_ShellWallSetElasPropdv (vis_ShellWall *shellwall,
Vint id,
Vint type,
Vdouble material[])
INPUT ARGUMENTS
shellwall Pointer to ShellWall object.
id Material id, 0 < id.
type The material property type
=SYS_MAT_ISOTROPIC Isotropic
=SYS_MAT_LAMINA Lamina
=SYS_MAT_ORTHOTROPIC Orthotropic
=SYS_MAT_ANISOTROPIC Anisotropic
material Array of material properties
OUTPUT ARGUMENTS
None
ERRORS
VIS_ERROR_VALUE is generated if an improper material id is specified.
VIS_ERROR_ENUM is generated if an improper material type is specified.
DESCRIPTION
Set material properties associated with a material identifier, the material
identifier, id may be any positive integer.
The material properties are input in array material in the order specified
for a particular type.
For isotropic materials input 2 values (E,Nu).
For lamina materials input 6 values (Ex,Ey,Nuxy,Gxy,Gyz,Gxz).
For orthotropic materials input 9 values
(Ex,Ey,Ez,Nuxy,Nuyz,Nuxz,Gxy,Gyz,Gxz).
For anisotropic materials input 21 values, the lower triangle of the
6x6 material D-matrix by rows.
Table of Contents
, ShellWall
NAME
vis_ShellWallSetLayer - set layer point connectivity, etc.
C SPECIFICATION
void vis_ShellWallSetLayer (vis_ShellWall *shellwall,
Vint id,
Vint ix[],
Vfloat phi,
Vint mid)
void vis_ShellWallSetLayerdv (vis_ShellWall *shellwall,
Vint id,
Vint ix[],
Vdouble phi,
Vint mid)
INPUT ARGUMENTS
shellwall Pointer to ShellWall object.
id Layer id, 1 <= id <= 256
ix End point connectivity of layer
phi Material orientation angle in degrees
mid Material property id.
OUTPUT ARGUMENTS
None
ERRORS
VIS_ERROR_OPERATION is generated if the shell type as defined by
vis_ShellWallDef is not SHELLWALL_GEOMETRY.
VIS_ERROR_VALUE is generated if an improper id is input.
DESCRIPTION
Set the end point connectivity, material orientation angle and material id
or layer id. The end point connectivity consists of two point ids, the
points defining the bottom and top of the layer respectively.
The layer ids should be consecutively numbered from the bottom to the top of
the shell wall.
Inquire of layer geometry for a given layer id as output arguments using
void vis_ShellWallGetLayer (vis_ShellWall *shellwall,
Vint id,
Vint ix[],
Vfloat *phi,
Vint *mid)
void vis_ShellWallGetLayerdv (vis_ShellWall *shellwall,
Vint id,
Vint ix[],
Vdouble *phi,
Vint *mid)
Table of Contents
, ShellWall
NAME
vis_ShellWallSetObject - set pointers to attribute objects
C SPECIFICATION
void vis_ShellWallSetObject (vis_ShellWall *shellwall,
Vint objecttype,
Vobject *object)
INPUT ARGUMENTS
shellwall Pointer to ShellWall object.
objecttype The name of the object type to be set.
=VIS_COLORMAP ColorMap object
=VGL_DRAWFUN DrawFun object
=VIS_LEVELS Levels object
=VIS_VISCONTEXT VisContext object
object Pointer to the object to be set.
OUTPUT ARGUMENTS
None
ERRORS
VIS_ERROR_OBJECTTYPE is generated if an improper objecttype is specified.
DESCRIPTION
Set a pointer to an attribute object.
Table of Contents
, ShellWall
NAME
vis_ShellWallSetParami - set shell wall display parameters
C SPECIFICATION
void vis_ShellWallSetParami (vis_ShellWall *shellwall,
Vint ptype,
Vint iparam)
INPUT ARGUMENTS
shellwall Pointer to ShellWall object.
ptype Type of display parameter to set
=SHELLWALL_AXESBASIC Draw basic local coordinate system
=SHELLWALL_AXESLAYER Draw layer material orientation axes
=SHELLWALL_MAPMATERIALID Map color to material id
iparam Specifies the integer value that ptype will be set to.
=VIS_OFF Turn parameter off
=VIS_ON Turn parameter on
OUTPUT ARGUMENTS
None
ERRORS
VIS_ERROR_ENUM is generated if an improper ptype is specified.
DESCRIPTION
Set shell wall display parameters.
The parameter SHELLWALL_AXESBASIC draws the shell wall basic coordinate
system x and y axes.
By default SHELLWALL_AXESBASIC is set to VIS_OFF.
The parameter SHELLWALL_AXESLAYER draws the shell wall layer material
orientation x and y axes.
By default SHELLWALL_AXESLAYER is set to VIS_ON.
The parameter SHELLWALL_MAPMATERIALID maps layer material id to
color rather than the default layer id if MapColor is
enabled in the VisContext attribute object.
By default SHELLWALL_MAPMATERIALID is set to VIS_OFF.
Table of Contents
, ShellWall
NAME
vis_ShellWallSetPoint - set location of point on shell wall
C SPECIFICATION
void vis_ShellWallSetPoint (vis_ShellWall *shellwall,
Vint id,
Vfloat z)
void vis_ShellWallSetPointdv (vis_ShellWall *shellwall,
Vint id,
Vdouble z)
INPUT ARGUMENTS
shellwall Pointer to ShellWall object.
id Point id, 1 <= id <= 256
z Z coordinate of point on shell wall
OUTPUT ARGUMENTS
None
ERRORS
VIS_ERROR_OPERATION is generated if the shell type as defined by
vis_ShellWallDef is not SHELLWALL_GEOMETRY.
VIS_ERROR_VALUE is generated if an improper id is input.
DESCRIPTION
Set the z coordinate of a point, id, on the shell wall.
Use vis_ShellWallSetLayer to define layer geometry using points.
Inquire of point coordinate for a given point id as an output argument using
void vis_ShellWallGetPoint (vis_ShellWall *shellwall,
Vint id,
Vfloat *z)
void vis_ShellWallGetPointdv (vis_ShellWall *shellwall,
Vint id,
Vdouble *z)
Table of Contents
, ShellWall
NAME
vis_ShellWallSetProps - set general shell wall properties
C SPECIFICATION
void vis_ShellWallSetProps (vis_ShellWall *shellwall,
Vfloat props[2],
Vfloat abdmat[21],
Vfloat qmat[3])
void vis_ShellWallSetPropsdv (vis_ShellWall *shellwall,
Vdouble props[2],
Vdouble abdmat[21],
Vdouble qmat[3])
INPUT ARGUMENTS
shellwall Pointer to ShellWall object.
OUTPUT ARGUMENTS
props Overall shell wall thickness and distance of midsurface from
reference surface (z = 0.)
abdmat Lower triangle of extensional-bending stiffness matrix
qmat Lower triangle of transverse shear material stiffness matrix
ERRORS
VIS_ERROR_OPERATION is generated if the shell type as defined by
vis_ShellWallDef is not SHELLWALL_PROPS.
DESCRIPTION
Set the general shell wall properties. The overall thickness and eccenticity
are set. The wall properties must
appear as follows in the input props vector.
props[0] - Thickness, T
props[1] - Eccentricity of midsurface from origin along z axis, Ez
The shell wall properties may be accessed for any shell type.
Inquire of shell wall properties as output arguments using
void vis_ShellWallGetProps (vis_ShellWall *shellwall,
Vfloat props[2],
Vfloat abdmat[6],
Vfloat qmat[3])
void vis_ShellWallGetPropsdv (vis_ShellWall *shellwall,
Vdouble props[2],
Vdouble abdmat[6],
Vdouble qmat[3])
Table of Contents
, ShellWall
NAME
vis_ShellWallStrsStrn - compute shell stress and strain
C SPECIFICATION
void vis_ShellWallStrsStrn (vis_ShellWall *shellwall,
Vint id,
Vint pos,
Vfloat eks[8],
Vfloat strs[6],
Vfloat strn[6]);
INPUT ARGUMENTS
shellwall Pointer to ShellWall object.
id Shell wall layer id.
pos Shell wall layer position
=VIS_BOTTOM Layer bottom
=VIS_CENTER Layer center
=VIS_TOP Layer top
eks Strains and curvatures
OUTPUT ARGUMENTS
strs Stress tensor
strn Strain tensor
ERRORS
VIS_ERROR_OPERATION is generated if no shellwall geometry has been defined.
VIS_ERROR_OPERATION is generated if no material properties have been defined.
VIS_ERROR_VALUE is generated if material properties are undefined for
a particular layer or an improper layer id is specified.
VIS_ERROR_ENUM is generated if an improper layer position is specified.
DESCRIPTION
Compute the full stress, strs and strain, strn tensor at position, pos,
in shell wall layer id
given the strains and curvatures, eks.
The stress and strain components are ordered (xx,yy,zz,xy,yz,zx)
The components of eks are
ordered (exx,eyy,exy,kxx,kyy,kxy,eyz,ezx).
Note that if the right-hand rotations about the x,y,z axes are denoted
by rx,ry,rz, then the curvatures, kxx,kyy,kxy, are given by:
kxx = ry,x
kyy = -rx,y
kxy = ry,y - rx,x
Given this definition, the components of curvature, (kxx,kyy,kxy), do
not transform as a tensor.
The transverse shear stresses, assuming that no tangential tractions
are applied to the shell surfaces, must be zero at the shell surfaces and
peak at the center. The transverse shear stresses are therefore adjusted
by the following factor:
1.5*(1-r*r)
where r is the normal coordinate which varies in the interval (-1.,1.)
from the bottom to the top surface.