public abstract class ShellElement3d extends FemElement3dBase implements Boundable, FrameAttachable
FemElement.ElementClass
ModelComponent.NavpanelVisibility
Modifier and Type | Field and Description |
---|---|
static PropertyList |
myProps |
setScannedNodesInPostscan, writeNodeRefsByNumber
enforceUniqueCompositeNames, enforceUniqueNames, myNumber, NULL_OBJ, useCompactPathNames
COPY_REFERENCES, REST_POSITION
TRANSPARENT, TWO_DIMENSIONAL
Constructor and Description |
---|
ShellElement3d() |
Modifier and Type | Method and Description |
---|---|
void |
computeJacobian(Matrix3d J,
Vector3d ncoords) |
void |
computeLocalPosition(Vector3d pnt,
Vector3d ncoords)
Compute position within element based on natural coordinates
|
abstract double |
computeNodeNormal(Vector3d nrm,
FemNode3d node)
Computes the shell element normal, with respect to current coordinates,
at a specific node, and returns the (cross product) area associated with
that normal.
|
abstract double |
computeRestNodeNormal(Vector3d nrm,
FemNode3d node)
Computes the shell element normal, with respect to rest coordinates, at a
specific node, and returns the (cross product) area associated with that
normal.
|
double |
computeRestVolumes()
Computes the rest volume associated with this element and stores the
result in the
myRestVolume field. |
double |
computeVolumes()
Computes the volume associated with this element and stores the result in
the
myVolume field. |
void |
connectToHierarchy(CompositeComponent hcomp)
Called by the system after this component, or an ancestor of this
component, is added to the component hierarchy (i.e., added as
a child of another CompositeComponent).
|
ShellElement3d |
copy(int flags,
java.util.Map<ModelComponent,ModelComponent> copyMap)
Create a copy of this component.
|
static ShellElement3d |
createElement(FemNode3d[] nodes,
double thickness,
boolean membrane,
boolean flipped) |
void |
disconnectFromHierarchy(CompositeComponent hcomp)
Called by the system after this component, or an ancestor of this
component, is removed from the component hierarchy (i.e., removed as a
child of its parent).
|
double |
doComputeVolume(boolean isRest) |
PropertyList |
getAllPropertyInfo()
Returns a list giving static information about all properties exported by
this object.
|
double |
getDefaultThickness() |
void |
invalidateRestData()
Invalidate data that relies on the element's rest position,
such as rest Jacobians and the base stiffness for co-rotated
stiffness.
|
abstract double |
nearestPoint(Point3d near,
Point3d pnt) |
abstract int |
numPlanarIntegrationPoints()
Number of integration points in the shell plane.
|
void |
setDefaultThickness(double newThickness) |
addConsistentGravity, addConsistentMass, advanceState, clearRotationData, computeConsistentMass, computeCovariance, computeDirectedRenderSize, computeGravityWeights, computeRenderCoordsAndGradient, containsEdge, containsFace, containsFace, containsNode, coordsAreInside, createFrameAttachment, createIntegrationPoints, createPointAttachment, getAllIntegrationPoints, getCopyReferences, getDeformation, getDeformation, getdNds, getEdgeIndices, getElementClass, getElementWidgetSize, getElementWidgetSizeMode, getFaceIndices, getFaces, getFemModel, getFrame, getIntegrationCoords, getIntegrationData, getIntegrationPoints, getIntegrationShapeMatrix, getInvB, getInvB, getMarkerCoordinates, getN, getNaturalCoordinates, getNaturalCoordinates, getNaturalCoordinatesGSS, getNodalAveragingMatrix, getNodalExtrapolationMatrix, getNodeCoords, getNodeCoords, getNodeMassWeights, getNodeNeighbors, getNodes, getNumFaces, getRotation, getRotation, getState, getStiffnessWarper, getTriangulatedFaceIndices, getWarpingData, getWarpingPoint, invalidateRotationData, isInside, isInvertedAtRest, notifyStateVersionChanged, numAllIntegrationPoints, numIntegrationPoints, renderWidget, requiresAdvance, setElementWidgetSize, setElementWidgetSizeMode, setFrame, setNodes, setState, setStiffnessWarper, triangulateFace
addAugmentingMaterial, addAuxiliaryMaterial, computeCentroid, containsNode, createRenderProps, defaultRenderPropsAreNull, getAugmentingMaterials, getAuxiliaryMaterials, getDensity, getDensityMode, getEffectiveMaterial, getHardReferences, getIndex, getLocalNodeIndex, getMass, getMaterial, getPlasticDeformation, getPoint, getRestVolume, getSelection, getStateVersion, getStrainEnergy, getVolume, hasActiveNodes, hasControllableNodes, hasState, integrationPointsInterpolateToNodes, integrationPointsMapToNodes, invalidateMassIfNecessary, isDuplicatable, isInverted, isLinear, isMassExplicit, materialsAreInvertible, numAugmentingMaterials, numAuxiliaryMaterials, numberString, numNodes, numPoints, prerender, propertyChanged, removeAugmentingMaterial, removeAuxiliaryMaterial, render, render, scaleDistance, scaleMass, setDensity, setDensityMode, setExplicitMass, setIndex, setInverted, setMass, setMaterial, setPlasticDeformation, unsetExplicitMass, updateBounds, updateRestVolumeAndMass
getRenderHints, getRenderProps, isSelectable, isVisible, numSelectionQueriesNeeded, setRenderProps, setVisible, updateRenderProps
checkFlag, checkName, checkNameUniqueness, clearFlag, clone, createTempFlag, getChildren, getGrandParent, getName, getNameRange, getNavpanelVisibility, getNavpanelVisibility, getNumber, getParent, getProperty, getSoftReferences, hasChildren, isFixed, isMarked, isScanning, isSelected, isWritable, makeValidName, makeValidName, notifyParentOfChange, postscan, printReferences, recursivelyContained, recursivelyContains, removeTempFlag, scan, setFixed, setFlag, setMarked, setName, setNavpanelVisibility, setNavpanelVisibility, setNumber, setParent, setScanning, setSelected, setWritable, updateReferences, write
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
computeCentroid, computeCovariance, getPoint, numPoints, updateBounds
createFrameAttachment
createPointAttachment
getHardReferences, getName, getNavpanelVisibility, getNumber, getParent, getSoftReferences, hasState, isFixed, isMarked, isSelected, notifyParentOfChange, scan, setFixed, setMarked, setName, setNumber, setParent, setSelected, setWritable, updateReferences
getProperty
getChildren, hasChildren
postscan
isWritable, write
getAuxVarDerivative, getAuxVarState, numAuxVars, setAuxVarState
public static PropertyList myProps
public PropertyList getAllPropertyInfo()
HasProperties
getAllPropertyInfo
in interface HasProperties
getAllPropertyInfo
in class FemElement3dBase
public abstract int numPlanarIntegrationPoints()
public double computeVolumes()
FemElement
myVolume
field.
The method should return the minimum Jacobian determinant ratio (det(J)/det(J0)) over all integration points. A negative value indicates that the element is "inverted" at one or more integration points.
computeVolumes
in class FemElement
public double computeRestVolumes()
FemElement
myRestVolume
field.
The method should return the minimum Jacobian determinant (det(J0)) over all integration points. A negative value indicates that the element is "inverted" in its rest position at one or more integration points.
computeRestVolumes
in class FemElement
public double doComputeVolume(boolean isRest)
public double getDefaultThickness()
public void setDefaultThickness(double newThickness)
public void invalidateRestData()
FemElement
invalidateRestData
in class FemElement3dBase
public abstract double computeRestNodeNormal(Vector3d nrm, FemNode3d node)
public abstract double computeNodeNormal(Vector3d nrm, FemNode3d node)
public void computeLocalPosition(Vector3d pnt, Vector3d ncoords)
computeLocalPosition
in class FemElement3dBase
pnt
- position within elementncoords
- natural coordinatespublic void computeJacobian(Matrix3d J, Vector3d ncoords)
computeJacobian
in class FemElement3dBase
public void connectToHierarchy(CompositeComponent hcomp)
ModelComponentBase
When this method is called, ModelComponent.getParent()
will return the new
parent component; the system will have set this beforehand.
connectToHierarchy
in interface ModelComponent
connectToHierarchy
in class FemElement3dBase
hcomp
- hierarchy component to which this component,
or its ancestor, was attachedpublic void disconnectFromHierarchy(CompositeComponent hcomp)
ModelComponentBase
When this method is called, ModelComponent.getParent()
will still return this
original parent component; the system will set this to null
after.
disconnectFromHierarchy
in interface ModelComponent
disconnectFromHierarchy
in class FemElement3dBase
hcomp
- hierarchy component from which this component,
or its ancestor, was detachedpublic ShellElement3d copy(int flags, java.util.Map<ModelComponent,ModelComponent> copyMap)
CopyableComponent
COPY_REFERENCES
is set in flags
, then any component referenced
by this component should itself be set to a copy. This
should be done first checking copyMap
for an
existing copy of the referenced component. If there is no existing
copy, then a copy should be created by calling copy
recursively and adding the new copy to copyMap
.copy
in interface CopyableComponent
copy
in class FemElement3dBase
flags
- flags to control the copyingcopyMap
- map to possible existing instances of referenced
componentspublic static ShellElement3d createElement(FemNode3d[] nodes, double thickness, boolean membrane, boolean flipped)