public class TetElement extends FemElement3d
ModelComponent.NavpanelVisibility
myProps
enforceUniqueCompositeNames, enforceUniqueNames, myNumber, NULL_OBJ, useCompactPathNames
COPY_REFERENCES
TRANSPARENT, TWO_DIMENSIONAL
Constructor and Description |
---|
TetElement() |
TetElement(FemNode3d[] nodes)
Creates a new TetraHedral element from four nodes.
|
TetElement(FemNode3d p0,
FemNode3d p1,
FemNode3d p2,
FemNode3d p3)
Creates a new TetraHedral element from four nodes.
|
Modifier and Type | Method and Description |
---|---|
double |
computeRestVolumes()
Default method to compute the element rest volume and partial volumes.
|
static double |
computeVolume(FemNode3d n0,
FemNode3d n1,
FemNode3d n2,
FemNode3d n3)
Computes the volume of the tetrahedron formed by four FemNodes, where the
first three nodes are arranged clockwise about a single face, and
clockwise is with respect to the face's outward normal.
|
static double |
computeVolume(Point3d p0,
Point3d p1,
Point3d p2,
Point3d p3) |
double |
computeVolumes()
Default method to compute an element's volume and partial volumes.
|
boolean |
coordsAreInside(Vector3d coords) |
static TetElement[] |
createCubeTesselation(FemNode3d p0,
FemNode3d p1,
FemNode3d p2,
FemNode3d p3,
FemNode3d p4,
FemNode3d p5,
FemNode3d p6,
FemNode3d p7,
boolean even)
Create a tesselation for a cubic configuration of nodes, using a
Freudenthal cut.
|
static TetElement[] |
createWedgeTesselation(FemNode3d p0,
FemNode3d p1,
FemNode3d p2,
FemNode3d p3,
FemNode3d p4,
FemNode3d p5,
int type)
Create a tesselation for a wedge configuration of nodes.
|
void |
getAreaWeightedNormals(Vector3d[] anormals)
Compute the area-weighted normals for this tetrahedron.
|
double |
getConditionNum() |
void |
getdNds(Vector3d dNds,
int i,
Vector3d coords) |
int[] |
getEdgeIndices() |
int[] |
getFaceIndices() |
double |
getIncompDerivative(Vector3d tmp1,
Vector3d tmp2) |
double[] |
getIntegrationCoords() |
IntegrationPoint3d[] |
getIntegrationPoints() |
boolean |
getMarkerCoordinates(VectorNd coords,
Point3d pos,
boolean checkInside) |
double |
getN(int i,
Vector3d coords) |
double[] |
getNodalExtrapolationMatrix() |
double[] |
getNodeCoords() |
IntegrationPoint3d |
getWarpingPoint() |
boolean |
hasEdge(FemNode3d n0,
FemNode3d n1) |
boolean |
hasFace(FemNode3d n0,
FemNode3d n1,
FemNode3d n2) |
boolean |
isInside(Point3d pnt)
Tests whether or not a point is inside an element.
|
static boolean |
isInside(Point3d pnt,
Point3d p0,
Point3d p1,
Point3d p2,
Point3d p3) |
boolean |
isInverted()
Returns true if this element has been marked as inverted by the FEM code.
|
int |
numIntegrationPoints() |
void |
render(Renderer renderer,
RenderProps props,
int flags) |
void |
renderWidget(Renderer renderer,
double size,
RenderProps props) |
void |
setNodes(FemNode3d p0,
FemNode3d p1,
FemNode3d p2,
FemNode3d p3)
Sets the nodes of a TetraHedral element.
|
addAuxiliaryMaterial, addNodeForce, addNodeStiffness, clearState, computeCentroid, computeCovariance, computeDirectedRenderSize, computeGravityWeights, computeJacobian, computePosition, computePressures, computeRenderCoordsAndGradient, computeWarping, connectToHierarchy, copy, createElement, createElement, createFrameAttachment, createIntegrationPoints, createPointAttachment, disconnectFromHierarchy, getAllPropertyInfo, getAuxiliaryMaterials, getCopyReferences, getElementWidgetSize, getElementWidgetSizeMode, getFaces, getFrame, getH, getIncompressConstraints, getIncompressIndex, getIntegrationData, getLagrangePressures, getNaturalCoordinates, getNaturalCoordinates, getNaturalCoordinatesGSS, getNaturalCoordinatesOld, getNaturalCoordinatesStd, getNodeCoords, getNodeNeighbors, getNodes, getNumEdges, getNumFaces, getPoint, getPressureWeightMatrix, getRestVolumes, getStiffnessWarper, getVolumes, getWarpingData, hasFace, invalidateRestData, isInvertedAtRest, materialsAreInvertible, numAuxiliaryMaterials, numPoints, numPressureVals, removeAuxiliaryMaterial, scaleDistance, setElementWidgetSize, setElementWidgetSizeMode, setFrame, setIncompressIndex, setStiffnessWarper, triangulateFace, updateBounds
containsNode, createRenderProps, getDensity, getDensityMode, getEffectiveMaterial, getHardReferences, getIndex, getLocalNodeIndex, getMass, getMaterial, getRestVolume, getSelection, getVolume, hasActiveNodes, hasControllableNodes, integrationPointsInterpolateToNodes, integrationPointsMapToNodes, isDuplicatable, isMassExplicit, numberString, numNodes, prerender, propertyChanged, render, scaleMass, setDensity, setDensityMode, setIndex, setInverted, setMass, setMassExplicit, setMaterial, updateRestVolumeAndMass
getRenderHints, getRenderProps, isSelectable, numSelectionQueriesNeeded, setRenderProps, updateRenderProps
checkFlag, checkName, checkNameUniqueness, clearFlag, clone, createTempFlag, getChildren, getGrandParent, getName, getNameRange, getNavpanelVisibility, getNavpanelVisibility, getNumber, getParent, getProperty, getSoftReferences, hasChildren, hasState, isConnectedToHierarchy, isFixed, isMarked, isSelected, isWritable, makeValidName, makeValidName, notifyParentOfChange, postscan, printReferences, recursivelyContained, recursivelyContains, removeTempFlag, scan, setFixed, setFlag, setMarked, setName, setNavpanelVisibility, setNavpanelVisibility, setNumber, setParent, setSelected, updateReferences, write
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getHardReferences, getName, getNavpanelVisibility, getNumber, getParent, getSoftReferences, hasState, isFixed, isMarked, isSelected, notifyParentOfChange, postscan, scan, setFixed, setMarked, setName, setNumber, setParent, setSelected, updateReferences
getProperty
getChildren, hasChildren
isWritable, write
public TetElement()
public TetElement(FemNode3d p0, FemNode3d p1, FemNode3d p2, FemNode3d p3)
public TetElement(FemNode3d[] nodes)
public IntegrationPoint3d[] getIntegrationPoints()
getIntegrationPoints
in class FemElement3d
public IntegrationPoint3d getWarpingPoint()
getWarpingPoint
in class FemElement3d
public double getConditionNum()
public boolean isInverted()
FemElement
isInverted
in class FemElement
public void setNodes(FemNode3d p0, FemNode3d p1, FemNode3d p2, FemNode3d p3)
public static TetElement[] createCubeTesselation(FemNode3d p0, FemNode3d p1, FemNode3d p2, FemNode3d p3, FemNode3d p4, FemNode3d p5, FemNode3d p6, FemNode3d p7, boolean even)
public static TetElement[] createWedgeTesselation(FemNode3d p0, FemNode3d p1, FemNode3d p2, FemNode3d p3, FemNode3d p4, FemNode3d p5, int type)
type
,
which is an integer in which bits 0, 1, and 2 describe whether the side
edge of the tetrahedron directly beneath edges p0-p1, p1-p2, and p2-p0 is
rising or falling as the edge is traversed in a counter-clockwise
fashion. Not all edges can be rising or falling, and so bit patterns 0x0
and 0x7 are illegal.public boolean coordsAreInside(Vector3d coords)
coordsAreInside
in class FemElement3d
public int numIntegrationPoints()
numIntegrationPoints
in class FemElement3d
public double[] getIntegrationCoords()
getIntegrationCoords
in class FemElement3d
public double[] getNodalExtrapolationMatrix()
getNodalExtrapolationMatrix
in class FemElement3d
public double getN(int i, Vector3d coords)
getN
in class FemElement3d
public void getdNds(Vector3d dNds, int i, Vector3d coords)
getdNds
in class FemElement3d
public double[] getNodeCoords()
getNodeCoords
in class FemElement3d
public int[] getEdgeIndices()
getEdgeIndices
in class FemElement3d
public int[] getFaceIndices()
getFaceIndices
in class FemElement3d
public void render(Renderer renderer, RenderProps props, int flags)
render
in class FemElement
public void renderWidget(Renderer renderer, double size, RenderProps props)
renderWidget
in class FemElement3d
public double computeRestVolumes()
computeRestVolumes
in class FemElement3d
public static double computeVolume(FemNode3d n0, FemNode3d n1, FemNode3d n2, FemNode3d n3)
n0
- 1st FEM noden1
- 2nd FEM noden2
- 3rd FEM noden3
- 4th FEM nodepublic double computeVolumes()
dv
field of
the elements integration data, for possible future use.
The method should return the minimum Jacobian value found when computing the volume for this element. A negative value indicates element inversion.
Individual elements can override this with a more efficient method if needed.
computeVolumes
in class FemElement3d
public void getAreaWeightedNormals(Vector3d[] anormals)
anormals
- returns the area-weight normalspublic boolean getMarkerCoordinates(VectorNd coords, Point3d pos, boolean checkInside)
getMarkerCoordinates
in class FemElement3d
public boolean isInside(Point3d pnt)
FemElement3d
isInside
in class FemElement3d
pnt
- point to check if is insidepublic static boolean isInside(Point3d pnt, Point3d p0, Point3d p1, Point3d p2, Point3d p3)
public boolean hasEdge(FemNode3d n0, FemNode3d n1)
hasEdge
in class FemElement3d
public boolean hasFace(FemNode3d n0, FemNode3d n1, FemNode3d n2)
hasFace
in class FemElement3d