public class MFreeElement3d extends FemElement3d implements Boundable
FemElement.ElementClassModelComponent.FilePathSaveType, ModelComponent.NavpanelVisibility| Modifier and Type | Field and Description |
|---|---|
static boolean |
extrapolateVolumeFromShapeFunctions |
myPropssetScannedNodesInPostscan, writeNodeRefsByNumberenforceUniqueCompositeNames, enforceUniqueNames, myNumber, NULL_OBJ, useCompactPathNamesCOPY_REFERENCES, REST_POSITIONTRANSPARENT, 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[] |
getInverseNodeOrdering()
Returns a node index reordering that inverts the element volume ( or
flips its orientation for shell elements).
|
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, setIncompressIndexaddConsistentGravity, 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, triangulateFaceaddAugmentingMaterial, 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, updateRestVolumeAndMassgetRenderHints, getRenderProps, isSelectable, isVisible, numSelectionQueriesNeeded, setRenderProps, setVisible, updateRenderPropscheckFlag, 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, writeequals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcomputeCovariancegetHardReferences, getName, getNavpanelVisibility, getNumber, getParent, getSoftReferences, hasState, isFixed, isMarked, isSelected, notifyParentOfChange, scan, setFixed, setMarked, setName, setNumber, setParent, setSelected, setWritable, updateReferencesgetPropertygetChildren, hasChildrenpostscanisWritable, writegetAuxVarDerivative, getAuxVarState, numAuxVars, setAuxVarStatepublic static boolean extrapolateVolumeFromShapeFunctions
public MFreeElement3d(MFreeShapeFunction fun, FemNode3d[] nodes)
public void setShapeFunction(MFreeShapeFunction f)
public MFreeShapeFunction getShapeFunction()
public boolean isInside(Point3d pnt)
FemElement3dBaseisInside in class FemElement3dBasepnt - point to check if is insidepublic boolean isInvertedAtRest()
FemElement3dBaseisInvertedAtRest in class FemElement3dBasepublic int numIntegrationPoints()
FemElement3dBaseFemElement3dBase.getIntegrationPoints(), but in some cases (such as shell elements being
used as membrane elements), it will be less.numIntegrationPoints in class FemElement3dBasepublic MFreeIntegrationPoint3d[] getIntegrationPoints()
FemElement3dBaseFemElement3dBase.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 FemElement3dBasepublic 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()
FemElement3dBasegetWarpingPoint in class FemElement3dBasepublic void setWarpingPoint(MFreeIntegrationPoint3d warp, IntegrationData3d data)
public void setWarpingPointData(IntegrationData3d data)
public void computeCentroid(Vector3d centroid)
BoundablecomputeCentroid in interface BoundablecomputeCentroid in class FemElementcentroid - returns the computed centroid value.public boolean extrapolatesNodalVolume()
public SparseCRSMatrix getNodalVolumeExtrapolationMatrix()
public void updateBounds(Vector3d min, Vector3d max)
IsRenderableupdateBounds in interface BoundableupdateBounds in interface IsRenderableupdateBounds in class FemElementmin - minimum pointmax - maximum pointpublic void setRestVolume(double vol)
public void setVolume(double vol)
public RenderProps createRenderProps()
HasRenderPropscreateRenderProps in interface HasRenderPropscreateRenderProps in class FemElementpublic void prerender(RenderList list)
IsRenderablelist.addIfVisible (obj);
for each of the objects in question.prerender in interface IsRenderableprerender in class FemElementlist - 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()
BoundablenumPoints in interface BoundablenumPoints in class FemElementpublic Point3d getPoint(int idx)
Boundableidx-th point associated with this element.getPoint in interface BoundablegetPoint in class FemElementidx - 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 FemElementpublic MatrixNd getNodalExtrapolationMatrix()
FemElement3dBaseFemElement3dBase.getIntegrationShapeMatrix().getNodalExtrapolationMatrix in class FemElement3dBasepublic 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)
FemElement3dBasecoordsAreInside in class FemElement3dBasetrue 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 FemElement3dBasecoords - 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 FemElement3dBasepublic void getdNds(Vector3d dNds, int i, Vector3d coords)
getdNds in class FemElement3dBasepublic int getLocalNodeIndex(FemNode p)
getLocalNodeIndex in class FemElementpublic double[] getIntegrationCoords()
FemElement3dBase4*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 FemElement3dBasepublic int[] getEdgeIndices()
getEdgeIndices in class FemElement3dBasepublic int[] getFaceIndices()
getFaceIndices in class FemElement3dBasepublic int[] getTriangulatedFaceIndices()
getTriangulatedFaceIndices in class FemElement3dBasepublic double[] getNodeCoords()
getNodeCoords in class FemElement3dBasepublic double[] getNodeMassWeights()
getNodeMassWeights in class FemElement3dBasepublic void renderWidget(Renderer renderer, double size, RenderProps props)
renderWidget in class FemElement3dBasepublic int[] getInverseNodeOrdering()
FemElement3dBasegetInverseNodeOrdering in class FemElement3dBase