public class MFreeElement3d extends FemElement implements Boundable
ModelComponent.NavpanelVisibility
Modifier and Type | Field and Description |
---|---|
static PropertyList |
myProps |
enforceUniqueCompositeNames, enforceUniqueNames, myNumber, NULL_OBJ, useCompactPathNames
COPY_REFERENCES
TRANSLUCENT, TWO_DIMENSIONAL
Constructor and Description |
---|
MFreeElement3d(MFreeNode3d[] nodes) |
Modifier and Type | Method and Description |
---|---|
void |
addAuxiliaryMaterial(AuxiliaryMaterial mat) |
void |
addDilationalStiffness(int i,
int j,
double kp,
Vector3d intGi,
Vector3d intGj) |
void |
addDilationalStiffness(int i,
int j,
MatrixNd Rinv,
MatrixBlock GT_i,
MatrixBlock GT_j) |
void |
addIntegrationPoint(MFreeIntegrationPoint3d ipnt,
IntegrationData3d idata,
double iwgt,
boolean updateVolumes) |
void |
addMaterialStiffness(int i,
int j,
Vector3d gi,
Matrix6d D,
SymmetricMatrix3d sig,
Vector3d gj,
double dv) |
void |
addNodeForce(Vector3d f,
int i,
boolean corotated) |
void |
addNodeStiffness(int i,
int j,
boolean corotated) |
void |
addPressureStiffness(int i,
int j,
Vector3d gi,
double p,
Vector3d gj,
double dv) |
void |
clearState() |
void |
computeCentroid(Vector3d centroid)
Computed the centroid of this element.
|
double |
computeCovariance(Matrix3d C)
Computes the covariance of the element, assuming a uniform density
of one.
|
void |
computeRenderCoordsAndGradient(Matrix3d F,
float[] coords)
Computes the current coordinates and deformation gradient at the
warping point, using render coordinates.
|
double |
computeVolumes()
Computes the volume and partial volumes associated with this element.
|
void |
computeWarping() |
void |
computeWarping(Matrix3d F,
SymmetricMatrix3d P) |
void |
connectToHierarchy()
Called by the system after this component is added to the
component hierarchy (i.e., when it is added as a child of another
CompositeComponent).
|
void |
disconnectFromHierarchy()
Called by the system after this component is removed from the component
hierarchy (i.e., when it is removed as a child of its parent).
|
PropertyList |
getAllPropertyInfo()
Returns a list giving static information about all properties exported by
this object.
|
AuxiliaryMaterial[] |
getAuxiliaryMaterials() |
PolygonalMesh |
getBoundaryMesh() |
double |
getElementWidgetSize() |
PropertyMode |
getElementWidgetSizeMode() |
Matrix3d |
getFrame() |
MatrixBlock[] |
getIncompressConstraints()
Returns an array of MatrixBlocks to be used as constraints to make the
element incompressible.
|
java.util.ArrayList<IntegrationData3d> |
getIntegrationData() |
IntegrationData3d |
getIntegrationData(int idx) |
java.util.ArrayList<int[]> |
getIntegrationIndices() |
int[] |
getIntegrationIndices(int idx) |
MFreeIntegrationPoint3d |
getIntegrationPoint(int idx) |
int |
getIntegrationPointIndex(IntegrationPoint3d pnt) |
java.util.ArrayList<MFreeIntegrationPoint3d> |
getIntegrationPoints() |
double |
getIntegrationWeight(int idx) |
VectorNd |
getIntegrationWeights() |
MFreeNode3d |
getNode(int idx) |
int |
getNodeIdx(MFreeNode3d node) |
MFreeNode3d[] |
getNodes() |
Point3d |
getPoint(int idx)
Returns the
idx -th point associated with this element. |
double |
getRestVolume() |
FemNodeNeighbor |
getStiffnessBlock(int i,
int j) |
FemNodeNeighbor[][] |
getStiffnessBlocks() |
MFreeStiffnessWarper3d |
getStiffnessWarper() |
IntegrationData3d |
getWarpingData() |
MFreeIntegrationPoint3d |
getWarpingPoint() |
boolean |
isInside(Point3d pnt) |
boolean |
isInvertedAtRest() |
boolean |
isTermActive(int i,
int j) |
boolean |
isTermActive(MFreeNode3d rowNode,
MFreeNode3d colNode) |
int |
numAuxiliaryMaterials() |
int |
numIntegrationPoints() |
int |
numNodes() |
int |
numPoints()
Returns the number of points associated with this element, if any, or
zero otherwise.
|
void |
prerender(RenderList list)
Prepare for rendering, and potentially add itself to a list to be drawn
by a GLRenderer.
|
boolean |
removeAuxiliaryMaterial(AuxiliaryMaterial mat) |
void |
render(GLRenderer renderer,
int flags)
Render this object using Open GL via the JOGL.
|
void |
renderWidget(GLRenderer renderer,
double size,
RenderProps props,
int flags) |
void |
renderWidget(GLRenderer renderer,
RenderProps props,
int flags) |
void |
setAllTermsActive(boolean act) |
void |
setBoundaryMesh(PolygonalMesh bmesh) |
void |
setColTermsActive(int j,
boolean act) |
void |
setColTermsActive(MFreeNode3d node,
boolean act) |
void |
setDiagonalTermsActive(boolean act) |
void |
setElementWidgetSize(double size) |
void |
setElementWidgetSizeMode(PropertyMode mode) |
void |
setFrame(Matrix3dBase M)
Set reference frame information for this element.
|
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 |
setIntegrationWeights(VectorNd weights) |
void |
setRestVolume(double vol) |
void |
setRowTermsActive(int i,
boolean act) |
void |
setRowTermsActive(MFreeNode3d node,
boolean act) |
void |
setTermActive(int i,
int j,
boolean act) |
void |
setTermActive(MFreeNode3d nodei,
MFreeNode3d nodej,
boolean act) |
void |
setTransposedStiffness() |
void |
setTransposedStiffness(int i,
int j)
Sets K[i][j] = K[j][i]^T
|
void |
setVolume(double vol) |
void |
setWarpingPoint(MFreeIntegrationPoint3d warp) |
void |
setWarpingPoint(MFreeIntegrationPoint3d warp,
IntegrationData3d data) |
void |
setWarpingPointData(IntegrationData3d data) |
void |
updateAllVolumes() |
void |
updateBounds(Point3d min,
Point3d max)
Update the minimum and maximum points for this object.
|
void |
updateJacobiansAndGradients() |
void |
updateWarpingStiffness() |
containsNode, copy, createRenderProps, getCopyReferences, getDensity, getDensityMode, getEffectiveMaterial, getHardReferences, getIndex, getLocalNodeIndex, getMarkerCoordinates, getMass, getMaterial, getSelection, getVolume, hasActiveNodes, hasControllableNodes, integrationPointsMapToNodes, invalidateRestData, isDuplicatable, isInverted, numberString, propertyChanged, render, scaleDistance, scaleMass, setDensity, setDensityMode, setIndex, setInverted, setMass, setMaterial, updateNodeMasses
getRenderHints, getRenderProps, isSelectable, numSelectionQueriesNeeded, setRenderProps, updateRenderProps
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
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
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 static PropertyList myProps
public MFreeElement3d(MFreeNode3d[] nodes)
public PropertyList getAllPropertyInfo()
HasProperties
getAllPropertyInfo
in interface HasProperties
getAllPropertyInfo
in class FemElement
public void setElementWidgetSize(double size)
public double getElementWidgetSize()
public void setElementWidgetSizeMode(PropertyMode mode)
public PropertyMode getElementWidgetSizeMode()
public boolean isInside(Point3d pnt)
public boolean isInvertedAtRest()
public void setAllTermsActive(boolean act)
public void setColTermsActive(int j, boolean act)
public void setRowTermsActive(int i, boolean act)
public void setTermActive(int i, int j, boolean act)
public void setDiagonalTermsActive(boolean act)
public boolean isTermActive(int i, int j)
public boolean isTermActive(MFreeNode3d rowNode, MFreeNode3d colNode)
public int getNodeIdx(MFreeNode3d node)
public void setColTermsActive(MFreeNode3d node, boolean act)
public void setRowTermsActive(MFreeNode3d node, boolean act)
public void setTermActive(MFreeNode3d nodei, MFreeNode3d nodej, boolean act)
public MFreeNode3d[] getNodes()
getNodes
in class FemElement
public MFreeNode3d getNode(int idx)
public int numNodes()
numNodes
in class FemElement
public int numIntegrationPoints()
public java.util.ArrayList<MFreeIntegrationPoint3d> getIntegrationPoints()
public MFreeIntegrationPoint3d getIntegrationPoint(int idx)
public int getIntegrationPointIndex(IntegrationPoint3d pnt)
public java.util.ArrayList<IntegrationData3d> getIntegrationData()
public IntegrationData3d getIntegrationData(int idx)
public java.util.ArrayList<int[]> getIntegrationIndices()
public int[] getIntegrationIndices(int idx)
public void clearState()
public VectorNd getIntegrationWeights()
public double getIntegrationWeight(int idx)
public void setIntegrationWeights(VectorNd weights)
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(java.util.ArrayList<MFreeIntegrationPoint3d> points)
public MFreeIntegrationPoint3d getWarpingPoint()
public IntegrationData3d getWarpingData()
public void setWarpingPoint(MFreeIntegrationPoint3d warp)
public void setWarpingPoint(MFreeIntegrationPoint3d warp, IntegrationData3d data)
public void setWarpingPointData(IntegrationData3d data)
public void addAuxiliaryMaterial(AuxiliaryMaterial mat)
public boolean removeAuxiliaryMaterial(AuxiliaryMaterial mat)
public int numAuxiliaryMaterials()
public AuxiliaryMaterial[] getAuxiliaryMaterials()
public void connectToHierarchy()
ModelComponentBase
When this method is called, ModelComponent.getParent()
will return
the new parent component; the system will have set this beforehand.
connectToHierarchy
in interface ModelComponent
connectToHierarchy
in class ModelComponentBase
public void disconnectFromHierarchy()
ModelComponentBase
When this
method is called, ModelComponent.getParent()
will still return this original
parent component; the system will set this to null
after.
disconnectFromHierarchy
in interface ModelComponent
disconnectFromHierarchy
in class ModelComponentBase
public void addNodeStiffness(int i, int j, boolean corotated)
public void addMaterialStiffness(int i, int j, Vector3d gi, Matrix6d D, SymmetricMatrix3d sig, Vector3d gj, double dv)
public void addPressureStiffness(int i, int j, Vector3d gi, double p, Vector3d gj, double dv)
public void addDilationalStiffness(int i, int j, double kp, Vector3d intGi, Vector3d intGj)
public void addDilationalStiffness(int i, int j, MatrixNd Rinv, MatrixBlock GT_i, MatrixBlock GT_j)
public void setTransposedStiffness()
public void setTransposedStiffness(int i, int j)
public void addNodeForce(Vector3d f, int i, boolean corotated)
public void updateWarpingStiffness()
public void computeWarping()
computeWarping
in class FemElement
public void computeWarping(Matrix3d F, SymmetricMatrix3d P)
public FemNodeNeighbor getStiffnessBlock(int i, int j)
public FemNodeNeighbor[][] getStiffnessBlocks()
public MFreeStiffnessWarper3d getStiffnessWarper()
public void computeCentroid(Vector3d centroid)
Boundable
computeCentroid
in interface Boundable
centroid
- returns the computed centroid value.public double computeCovariance(Matrix3d C)
Boundable
int_V \rho x x^T dV,where
\rho
is the density, x
is any
spatial point within the element, and the integral is evaluated
over the element's spatial extent. The method returns the element's
spatial size, which for elements of dimension 3, 2, 1, or 0 will
be a volume, area, length, or discrete value.
Implementation of this method is optional, with non-implementation indicated by having the method return -1. Non-implementation may prevent the element from being enclosed within certain types of oriented bounding box (OBB) constructions.
computeCovariance
in interface Boundable
C
- returns the covariancepublic void updateBounds(Point3d min, Point3d max)
GLRenderable
updateBounds
in interface Boundable
updateBounds
in interface GLRenderable
updateBounds
in class FemElement
min
- minimum pointmax
- maximum pointpublic double getRestVolume()
getRestVolume
in class FemElement
public void setRestVolume(double vol)
public void updateJacobiansAndGradients()
public double computeVolumes()
FemElement
computeVolumes
in class FemElement
public void setVolume(double vol)
public void prerender(RenderList list)
GLRenderable
prerender
in interface GLRenderable
prerender
in class FemElement
public void renderWidget(GLRenderer renderer, RenderProps props, int flags)
public void renderWidget(GLRenderer renderer, double size, RenderProps props, int flags)
public void setBoundaryMesh(PolygonalMesh bmesh)
public PolygonalMesh getBoundaryMesh()
public void computeRenderCoordsAndGradient(Matrix3d F, float[] coords)
public void render(GLRenderer renderer, int flags)
GLRenderable
render
in interface GLRenderable
render
in class FemElement
renderer
- renderer object which is used to perform the rendering. Provides pointers
to GL and GLU, along with helper functions.flags
- supplies flags that may be used to control different
aspects of the rendering. Flags are defined in GLRenderer
and currently include
GLRenderer.SELECTED
,
GLRenderer.VERTEX_COLORING
,
GLRenderer.HSV_COLOR_INTERPOLATION
,
GLRenderer.SORT_FACES
, and
GLRenderer.CLEAR_MESH_DISPLAY_LISTS
.public void setFrame(Matrix3dBase M)
M
to null
removes the frame information.M
- frame information (is copied by the method)public Matrix3d getFrame()
public MatrixBlock[] getIncompressConstraints()
public int numPoints()
Boundable
public Point3d getPoint(int idx)
Boundable
idx
-th point associated with this element.getPoint
in interface Boundable
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.