artisynth.core.femmodels
Class QuadpyramidElement
java.lang.Object
artisynth.core.modelbase.ModelComponentBase
artisynth.core.modelbase.RenderableComponentBase
artisynth.core.femmodels.FemElement
artisynth.core.femmodels.FemElement3d
artisynth.core.femmodels.QuadpyramidElement
- All Implemented Interfaces:
- CopyableComponent, ModelComponent, RenderableComponent, PropertyChangeListener, ScalableUnits, java.lang.Cloneable, Boundable, HasProperties, HierarchyNode, GLRenderable, GLSelectable, HasRenderProps, Renderable, Scannable
public class QuadpyramidElement
- extends FemElement3d
Method Summary |
boolean |
coordsAreInside(Vector3d coords)
|
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()
|
static FemNode3d[] |
getQuadraticNodes(FemNode3d n0,
FemNode3d n1,
FemNode3d n2,
FemNode3d n3,
FemNode3d n4)
|
static FemNode3d[] |
getQuadraticNodes(PyramidElement pyramid)
|
IntegrationPoint3d |
getWarpingPoint()
|
boolean |
isInside(Point3d pnt)
Tests whether or not a point is inside an element. |
int |
numIntegrationPoints()
|
void |
renderEdges(GLRenderer renderer,
RenderProps props)
Need to override renderEdges because the coordinate interpolation along
the edges leading to the apex must be handled in a special way (because
the shape functions are determined from condensation and the natural
coordinates correspond to a cube). |
void |
renderWidget(GLRenderer renderer,
double size,
RenderProps props)
|
FemNode3d[][] |
triangulateFace(FaceNodes3d face)
|
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, renderWidget, renderWidget, renderWidgetEdges, renderWidgetEdges, scaleDistance, setElementWidgetSize, setElementWidgetSizeMode, setFrame, setIncompressIndex, 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, integrationPointsMapToNodes, 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 |
QuadpyramidElement
public QuadpyramidElement()
QuadpyramidElement
public QuadpyramidElement(PyramidElement pyramid,
FemNode3d[] quadraticNodes)
- Create a QuadpyramidElement based on the NODE POSITIONS of a given
PyramidElement (i.e. it does not inherit any other attributes of the
PyramidElement). Takes the 5 nodes of the given PyramidElement along with the
8 given quadraticNodes as the middle nodes to create a 13 node quadratic
pyramid.
- Parameters:
pyramid
- A pyramid elementquadraticNodes
- the 8 edge nodes
QuadpyramidElement
public QuadpyramidElement(FemNode3d[] nodes)
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
getQuadraticNodes
public static FemNode3d[] getQuadraticNodes(PyramidElement pyramid)
getQuadraticNodes
public static FemNode3d[] getQuadraticNodes(FemNode3d n0,
FemNode3d n1,
FemNode3d n2,
FemNode3d n3,
FemNode3d n4)
getEdgeIndices
public int[] getEdgeIndices()
- Specified by:
getEdgeIndices
in class FemElement3d
getFaceIndices
public int[] getFaceIndices()
- Specified by:
getFaceIndices
in class FemElement3d
renderWidget
public void renderWidget(GLRenderer renderer,
double size,
RenderProps props)
- Overrides:
renderWidget
in class FemElement3d
triangulateFace
public FemNode3d[][] triangulateFace(FaceNodes3d face)
- Overrides:
triangulateFace
in class FemElement3d
renderEdges
public void renderEdges(GLRenderer renderer,
RenderProps props)
- Need to override renderEdges because the coordinate interpolation along
the edges leading to the apex must be handled in a special way (because
the shape functions are determined from condensation and the natural
coordinates correspond to a cube).
- Overrides:
renderEdges
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