public class MFreeElement3d extends FemElement3d implements Boundable
FemElement.ElementClass
ModelComponent.NavpanelVisibility
Modifier and Type | Field and Description |
---|---|
static boolean |
extrapolateVolumeFromShapeFunctions |
myProps
setScannedNodesInPostscan, writeNodeRefsByNumber
enforceUniqueCompositeNames, enforceUniqueNames, myNumber, NULL_OBJ, useCompactPathNames
COPY_REFERENCES, REST_POSITION
TRANSPARENT, TWO_DIMENSIONAL
Constructor and Description |
---|
MFreeElement3d(MFreeShapeFunction fun,
FemNode3d[] nodes) |
Modifier and Type | Method and Description |
---|---|
void |
addIntegrationPoint(MFreeIntegrationPoint3d ipnt,
IntegrationData3d idata,
double iwgt,
boolean updateVolumes) |
void |
computeCentroid(Vector3d centroid)
Computed the centroid of this element.
|
boolean |
coordsAreInside(Vector3d coords)
Queries whether or not a set of natural coordinates are inside this
element.
|
RenderProps |
createRenderProps()
Factory method to create render properties appropriate to this object.
|
boolean |
extrapolatesNodalVolume() |
PolygonalMesh |
getBoundaryMesh() |
void |
getdNds(Vector3d dNds,
int i,
Vector3d coords) |
int[] |
getEdgeIndices() |
int[] |
getFaceIndices() |
double[] |
getIntegrationCoords()
Returns the natural coordinates and weights for the default integration
points associated with this element.
|
MFreeIntegrationPoint3d |
getIntegrationPoint(int idx) |
int |
getIntegrationPointIndex(IntegrationPoint3d pnt) |
MFreeIntegrationPoint3d[] |
getIntegrationPoints()
Returns the integration points associated with this element, not
including the warping point (see
FemElement3dBase.getWarpingPoint() ). |
int |
getLocalNodeIndex(FemNode p) |
double |
getN(int i,
Vector3d coords) |
boolean |
getNaturalCoordinates(Point3d coords,
Point3d pnt)
Computes "natural" coordinates (i.e.
|
boolean |
getNaturalCoordinates(Point3d coords,
Point3d pnt,
VectorNd N) |
int |
getNaturalCoordinates(Vector3d coords,
Point3d pnt,
int maxIters)
Given point p, get its natural coordinates with respect to this element.
|
int |
getNaturalCoordinates(Vector3d coords,
Point3d pnt,
int maxIters,
VectorNd N)
Given point p, get its natural coordinates with respect to this element.
|
void |
getNaturalRestCoordinates(Vector3d coords,
Point3d pnt,
VectorNd N) |
MatrixNd |
getNodalExtrapolationMatrix()
Returns the nodal extrapolation matrix for this element.
|
SparseCRSMatrix |
getNodalVolumeExtrapolationMatrix() |
double[] |
getNodeCoords() |
double[] |
getNodeMassWeights() |
Point3d |
getPoint(int idx)
Returns the
idx -th point associated with this element. |
MFreeShapeFunction |
getShapeFunction() |
int[] |
getTriangulatedFaceIndices() |
MFreeIntegrationPoint3d |
getWarpingPoint()
Returns the special warping integration point which is located at
the center of the element and is used for computing stiffness warping and
other specialized applications.
|
boolean |
isInside(Point3d pnt)
Tests whether or not a point is inside an element.
|
boolean |
isInvertedAtRest()
Returns true if the rest position for this element results in a negative
Jacobian determinant for at least one integration point.
|
int |
numIntegrationPoints()
Returns the number of integration points actually used by this element
(not including the warping point, if any).
|
int |
numPoints()
Returns the number of points associated with this element, if any, or
zero otherwise.
|
void |
prerender(RenderList list)
Called prior to rendering to allow this object to update the internal
state required for rendering (such as by caching rendering coordinates).
|
void |
render(Renderer renderer,
RenderProps rprops,
int flags) |
void |
renderWidget(Renderer renderer,
double size,
RenderProps props) |
void |
renderWidget(Renderer renderer,
double size,
RenderProps props,
int flags) |
void |
renderWidget(Renderer renderer,
RenderProps props,
int flags) |
void |
setBoundaryMesh(PolygonalMesh bmesh) |
void |
setIntegrationData(java.util.ArrayList<IntegrationData3d> data) |
void |
setIntegrationPoints(java.util.ArrayList<MFreeIntegrationPoint3d> points) |
void |
setIntegrationPoints(java.util.ArrayList<MFreeIntegrationPoint3d> points,
java.util.ArrayList<IntegrationData3d> data) |
void |
setIntegrationPoints(MFreeIntegrationPoint3d[] points,
IntegrationData3d[] data) |
void |
setRestVolume(double vol) |
void |
setShapeFunction(MFreeShapeFunction f) |
void |
setVolume(double vol) |
void |
setWarpingPoint(MFreeIntegrationPoint3d warp) |
void |
setWarpingPoint(MFreeIntegrationPoint3d warp,
IntegrationData3d data) |
void |
setWarpingPointData(IntegrationData3d data) |
void |
updateAllVolumes() |
void |
updateBounds(Vector3d min,
Vector3d max)
Update the minimum and maximum points for this object.
|
computeJacobian, computeLocalPosition, computeRestVolumes, computeVolumes, copy, createElement, createElement, getH, getIncompressConstraints, getIncompressIndex, getLagrangePressures, getPressureWeightMatrix, getRestVolumes, getVolumes, numPressureVals, scaleDistance, setIncompressIndex
addConsistentGravity, addConsistentMass, advanceState, clearRotationData, computeConsistentMass, computeCovariance, computeDirectedRenderSize, computeGravityWeights, computeRenderCoordsAndGradient, connectToHierarchy, containsEdge, containsFace, containsFace, containsNode, createFrameAttachment, createIntegrationPoints, createPointAttachment, disconnectFromHierarchy, getAllIntegrationPoints, getAllPropertyInfo, getCopyReferences, getDeformation, getDeformation, getElementClass, getElementWidgetSize, getElementWidgetSizeMode, getFaces, getFemModel, getFrame, getIntegrationData, getIntegrationShapeMatrix, getInvB, getInvB, getMarkerCoordinates, getNaturalCoordinates, getNaturalCoordinatesGSS, getNodalAveragingMatrix, getNodeCoords, getNodeNeighbors, getNodes, getNumFaces, getRotation, getRotation, getState, getStiffnessWarper, getWarpingData, invalidateRestData, invalidateRotationData, notifyStateVersionChanged, numAllIntegrationPoints, requiresAdvance, setElementWidgetSize, setElementWidgetSizeMode, setFrame, setNodes, setState, setStiffnessWarper, triangulateFace
addAugmentingMaterial, addAuxiliaryMaterial, containsNode, defaultRenderPropsAreNull, getAugmentingMaterials, getAuxiliaryMaterials, getDensity, getDensityMode, getEffectiveMaterial, getHardReferences, getIndex, getMass, getMaterial, getPlasticDeformation, getRestVolume, getSelection, getStateVersion, getStrainEnergy, getVolume, hasActiveNodes, hasControllableNodes, hasState, integrationPointsInterpolateToNodes, integrationPointsMapToNodes, invalidateMassIfNecessary, isDuplicatable, isInverted, isLinear, isMassExplicit, materialsAreInvertible, numAugmentingMaterials, numAuxiliaryMaterials, numberString, numNodes, propertyChanged, removeAugmentingMaterial, removeAuxiliaryMaterial, render, scaleMass, setDensity, setDensityMode, setExplicitMass, setIndex, setInverted, setMass, setMaterial, setPlasticDeformation, unsetExplicitMass, 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
computeCovariance
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 boolean extrapolateVolumeFromShapeFunctions
public MFreeElement3d(MFreeShapeFunction fun, FemNode3d[] nodes)
public void setShapeFunction(MFreeShapeFunction f)
public MFreeShapeFunction getShapeFunction()
public boolean isInside(Point3d pnt)
FemElement3dBase
isInside
in class FemElement3dBase
pnt
- point to check if is insidepublic boolean isInvertedAtRest()
FemElement3dBase
isInvertedAtRest
in class FemElement3dBase
public int numIntegrationPoints()
FemElement3dBase
FemElement3dBase.getIntegrationPoints()
, but in some cases (such as shell elements being
used as membrane elements), it will be less.numIntegrationPoints
in class FemElement3dBase
public MFreeIntegrationPoint3d[] getIntegrationPoints()
FemElement3dBase
FemElement3dBase.getWarpingPoint()
). In
some cases, such as with membrane elements, only the first n
points of these points are actaully used, where n is the number
returned by FemElement3dBase.numIntegrationPoints()
.getIntegrationPoints
in class FemElement3dBase
public MFreeIntegrationPoint3d getIntegrationPoint(int idx)
public int getIntegrationPointIndex(IntegrationPoint3d pnt)
public void updateAllVolumes()
public void addIntegrationPoint(MFreeIntegrationPoint3d ipnt, IntegrationData3d idata, double iwgt, boolean updateVolumes)
public void setIntegrationData(java.util.ArrayList<IntegrationData3d> data)
public void setIntegrationPoints(java.util.ArrayList<MFreeIntegrationPoint3d> points, java.util.ArrayList<IntegrationData3d> data)
public void setIntegrationPoints(MFreeIntegrationPoint3d[] points, IntegrationData3d[] data)
public void setIntegrationPoints(java.util.ArrayList<MFreeIntegrationPoint3d> points)
public void setWarpingPoint(MFreeIntegrationPoint3d warp)
public MFreeIntegrationPoint3d getWarpingPoint()
FemElement3dBase
getWarpingPoint
in class FemElement3dBase
public void setWarpingPoint(MFreeIntegrationPoint3d warp, IntegrationData3d data)
public void setWarpingPointData(IntegrationData3d data)
public void computeCentroid(Vector3d centroid)
Boundable
computeCentroid
in interface Boundable
computeCentroid
in class FemElement
centroid
- returns the computed centroid value.public boolean extrapolatesNodalVolume()
public SparseCRSMatrix getNodalVolumeExtrapolationMatrix()
public void updateBounds(Vector3d min, Vector3d max)
IsRenderable
updateBounds
in interface Boundable
updateBounds
in interface IsRenderable
updateBounds
in class FemElement
min
- minimum pointmax
- maximum pointpublic void setRestVolume(double vol)
public void setVolume(double vol)
public RenderProps createRenderProps()
HasRenderProps
createRenderProps
in interface HasRenderProps
createRenderProps
in class FemElement
public void prerender(RenderList list)
IsRenderable
list.addIfVisible (obj);
for each of the objects in question.prerender
in interface IsRenderable
prerender
in class FemElement
list
- list of objects to be renderedpublic void renderWidget(Renderer renderer, RenderProps props, int flags)
public void renderWidget(Renderer renderer, double size, RenderProps props, int flags)
public void setBoundaryMesh(PolygonalMesh bmesh)
public PolygonalMesh getBoundaryMesh()
public int numPoints()
Boundable
numPoints
in interface Boundable
numPoints
in class FemElement
public Point3d getPoint(int idx)
Boundable
idx
-th point associated with this element.getPoint
in interface Boundable
getPoint
in class FemElement
idx
- index of the point (must be on the range 0 to
Boundable.numPoints()
).idx
-th point associated with this element.
Must not be modified.public void render(Renderer renderer, RenderProps rprops, int flags)
render
in class FemElement
public MatrixNd getNodalExtrapolationMatrix()
FemElement3dBase
FemElement3dBase.getIntegrationShapeMatrix()
.getNodalExtrapolationMatrix
in class FemElement3dBase
public boolean getNaturalCoordinates(Point3d coords, Point3d pnt)
coords
- initial guess, value is updated with final coordinatepnt
- world point to determine coordinates ofpublic boolean coordsAreInside(Vector3d coords)
FemElement3dBase
coordsAreInside
in class FemElement3dBase
true
if ncoords
are inside this element.public int getNaturalCoordinates(Vector3d coords, Point3d pnt, int maxIters)
coords
argument that returned the coordinates is
used, on input, to supply an initial guess of the coordinates.
Zero is generally a safe guess.getNaturalCoordinates
in class FemElement3dBase
coords
- Outputs the natural coordinates, and supplies (on input) an initial
guess as to their position.pnt
- A given point (in world coords)maxIters
- Maximum number of Newton iterationspublic void getNaturalRestCoordinates(Vector3d coords, Point3d pnt, VectorNd N)
public int getNaturalCoordinates(Vector3d coords, Point3d pnt, int maxIters, VectorNd N)
coords
argument that returned the coordinates is
used, on input, to supply an initial guess of the coordinates.coords
- Outputs the natural coordinates, and supplies (on input) an initial
guess as to their position.pnt
- A given point (in world coords)maxIters
- Maximum number of iterationsN
- Resulting shape function valuespublic double getN(int i, Vector3d coords)
getN
in class FemElement3dBase
public void getdNds(Vector3d dNds, int i, Vector3d coords)
getdNds
in class FemElement3dBase
public int getLocalNodeIndex(FemNode p)
getLocalNodeIndex
in class FemElement
public double[] getIntegrationCoords()
FemElement3dBase
4*num
, where num
is the number of
coordinates, and the information for each coordinate consists of a
4-tuple giving the three natural coordinates followed by the weight.getIntegrationCoords
in class FemElement3dBase
public int[] getEdgeIndices()
getEdgeIndices
in class FemElement3dBase
public int[] getFaceIndices()
getFaceIndices
in class FemElement3dBase
public int[] getTriangulatedFaceIndices()
getTriangulatedFaceIndices
in class FemElement3dBase
public double[] getNodeCoords()
getNodeCoords
in class FemElement3dBase
public double[] getNodeMassWeights()
getNodeMassWeights
in class FemElement3dBase
public void renderWidget(Renderer renderer, double size, RenderProps props)
renderWidget
in class FemElement3dBase