artisynth.core.femmodels
Class PyramidElement
java.lang.Object
artisynth.core.modelbase.ModelComponentBase
artisynth.core.modelbase.RenderableComponentBase
artisynth.core.femmodels.FemElement
artisynth.core.femmodels.FemElement3d
artisynth.core.femmodels.PyramidElement
- All Implemented Interfaces:
- CopyableComponent, ModelComponent, RenderableComponent, PropertyChangeListener, ScalableUnits, java.lang.Cloneable, Boundable, HasProperties, HierarchyNode, GLRenderable, GLSelectable, HasRenderProps, Renderable, Scannable
public class PyramidElement
- extends FemElement3d
Method Summary |
boolean |
coordsAreInside(Vector3d coords)
|
static PyramidElement[] |
createCubeTesselation(FemNode3d p0,
FemNode3d p1,
FemNode3d p2,
FemNode3d p3,
FemNode3d p4,
FemNode3d p5,
FemNode3d p6,
FemNode3d p7,
int apexNode)
Create a tesselation for a cubic configuration of nodes, using a 3
pyramids. |
void |
getdNds(Vector3d dNds,
int i,
Vector3d coords)
|
int[] |
getEdgeIndices()
|
int[] |
getFaceIndices()
|
double[] |
getIntegrationCoords()
|
IntegrationPoint3d[] |
getIntegrationPoints()
|
double |
getN(int i,
Vector3d coords)
|
double[] |
getNodalExtrapolationMatrix()
|
double[] |
getNodeCoords()
|
IntegrationPoint3d |
getWarpingPoint()
|
boolean |
integrationPointsMapToNodes()
Returns true if there is a one-to-one mapping between integration points
and nodes. |
boolean |
isInside(Point3d pnt)
Tests whether or not a point is inside an element. |
int |
numIntegrationPoints()
|
void |
renderWidget(GLRenderer renderer,
double size,
RenderProps props)
|
Methods inherited from class artisynth.core.femmodels.FemElement3d |
addAuxiliaryMaterial, addNodeForce, addNodeForce0, addNodeForce0, addNodeStiffness, addNodeStiffness, clearState, computeCentroid, computeCovariance, computeDirectedRenderSize, computeGravityWeights, computePressures, computeRenderCoordsAndGradient, computeRestVolumes, computeVolumes, computeWarping, computeWarping, connectToHierarchy, copy, createElement, createElement, createIntegrationPoints, disconnectFromHierarchy, getAllPropertyInfo, getAuxiliaryMaterials, getCopyReferences, getElementWidgetSize, getElementWidgetSizeMode, getFrame, getH, getIncompressConstraints, getIncompressIndex, getIntegrationData, getMarkerCoordinates, getNaturalCoordinates, getNaturalCoordinatesRobust, getNodeCoords, getNodes, getNumEdges, getNumFaces, getPoint, getPressureWeightMatrix, getTriFaces, getWarpingData, hasEdge, hasFace, hasFace, invalidateRestData, isInvertedAtRest, materialsAreInvertible, numAuxiliaryMaterials, numPoints, numPressureVals, removeAuxiliaryMaterial, render, render, renderEdges, renderWidget, renderWidget, renderWidgetEdges, renderWidgetEdges, scaleDistance, setElementWidgetSize, setElementWidgetSizeMode, setFrame, setIncompressIndex, triangulateFace, updateBounds, updateWarpingStiffness |
Methods inherited from class artisynth.core.femmodels.FemElement |
containsNode, createRenderProps, getDensity, getDensityMode, getEffectiveMaterial, getHardReferences, getIndex, getLocalNodeIndex, getMass, getMaterial, getRestVolume, getSelection, getVolume, hasActiveNodes, hasControllableNodes, isDuplicatable, isInverted, numberString, numNodes, prerender, propertyChanged, scaleMass, setDensity, setDensityMode, setIndex, setInverted, setMass, setMaterial, updateNodeMasses |
Methods inherited from class artisynth.core.modelbase.ModelComponentBase |
checkFlag, checkName, checkNameUniqueness, clearFlag, clone, createTempFlag, getChildren, getGrandParent, getName, getNameRange, getNavpanelVisibility, getNavpanelVisibility, getNumber, getParent, getProperty, getSoftReferences, hasChildren, hasState, isFixed, isMarked, isSelected, isWritable, makeValidName, makeValidName, notifyParentOfChange, postscan, printReferences, recursivelyContained, recursivelyContains, removeTempFlag, scan, setFixed, setFlag, setMarked, setName, setNavpanelVisibility, setNavpanelVisibility, setNumber, setParent, setSelected, updateReferences, write |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface artisynth.core.modelbase.ModelComponent |
getName, getNavpanelVisibility, getNumber, getParent, getSoftReferences, hasState, isFixed, isMarked, isSelected, notifyParentOfChange, postscan, scan, setFixed, setMarked, setName, setNumber, setParent, setSelected, updateReferences |
PyramidElement
public PyramidElement()
PyramidElement
public PyramidElement(FemNode3d n1,
FemNode3d n2,
FemNode3d n3,
FemNode3d n4,
FemNode3d n5)
- Creates a PyramidElement from five nodes. The first four nodes should
describe the bottom face of the element, arranged clockwise about
the outward-directed normal. The last node is the top node.
PyramidElement
public PyramidElement(FemNode3d[] nodes)
integrationPointsMapToNodes
public boolean integrationPointsMapToNodes()
- Returns true if there is a one-to-one mapping between integration points
and nodes. If so, this means that nodal values of quantities such as
stress and volume can be adequately approximated by averaging the same
quantities from all the associated integration points.
- Overrides:
integrationPointsMapToNodes
in class FemElement
getIntegrationPoints
public IntegrationPoint3d[] getIntegrationPoints()
- Specified by:
getIntegrationPoints
in class FemElement3d
getWarpingPoint
public IntegrationPoint3d getWarpingPoint()
- Specified by:
getWarpingPoint
in class FemElement3d
coordsAreInside
public boolean coordsAreInside(Vector3d coords)
- Specified by:
coordsAreInside
in class FemElement3d
numIntegrationPoints
public int numIntegrationPoints()
- Specified by:
numIntegrationPoints
in class FemElement3d
getIntegrationCoords
public double[] getIntegrationCoords()
- Specified by:
getIntegrationCoords
in class FemElement3d
getNodeCoords
public double[] getNodeCoords()
- Specified by:
getNodeCoords
in class FemElement3d
getNodalExtrapolationMatrix
public double[] getNodalExtrapolationMatrix()
- Specified by:
getNodalExtrapolationMatrix
in class FemElement3d
getN
public double getN(int i,
Vector3d coords)
- Specified by:
getN
in class FemElement3d
getdNds
public void getdNds(Vector3d dNds,
int i,
Vector3d coords)
- Specified by:
getdNds
in class FemElement3d
createCubeTesselation
public static PyramidElement[] createCubeTesselation(FemNode3d p0,
FemNode3d p1,
FemNode3d p2,
FemNode3d p3,
FemNode3d p4,
FemNode3d p5,
FemNode3d p6,
FemNode3d p7,
int apexNode)
- Create a tesselation for a cubic configuration of nodes, using a 3
pyramids. The first four particles should define a single
counter-clockwise face, while the last four should give the corresponding
(clockwise) nodes for the opposite face. The parameter
apexNode
defines the node where all three pyramid
top nodes meet. This corner will be opposite the one where all
three quad faces meet.
renderWidget
public void renderWidget(GLRenderer renderer,
double size,
RenderProps props)
- Overrides:
renderWidget
in class FemElement3d
getEdgeIndices
public int[] getEdgeIndices()
- Specified by:
getEdgeIndices
in class FemElement3d
getFaceIndices
public int[] getFaceIndices()
- Specified by:
getFaceIndices
in class FemElement3d
isInside
public boolean isInside(Point3d pnt)
- Description copied from class:
FemElement3d
- Tests whether or not a point is inside an element.
- Overrides:
isInside
in class FemElement3d
- Parameters:
pnt
- point to check if is inside
- Returns:
- true if point is inside the element