public class MFreeModel3d extends FemModel3d
FemModel.ElementFilter, FemModel.IncompMethod, FemModel.Ranging, FemModel.SurfaceRender
MechSystem.ConstraintInfo, MechSystem.FrictionInfo
Collidable.Collidability, Collidable.Group
HasAuxState.StateContext
CompositeComponent.NavpanelDisplay
abortOnInvertedElems, checkTangentStability, DEFAULT_HARD_INCOMP, DEFAULT_SOFT_INCOMP, DEFAULT_SURFACEMESH_NAME, defaultAutoGenerateSurface, detJStepReductionLimit, frameMassFraction, myProps, noIncompressStiffnessDamping, useFrameRelativeCouplingMasses
myParametricsInSystemMatrix
DEFAULT_NAVPANEL_DISPLAY
enforceUniqueCompositeNames, enforceUniqueNames, myNumber, NULL_OBJ, useCompactPathNames
TG_ARTICULATED, TG_DRAGGER, TG_PRESERVE_ORIENTATION, TG_SIMULATING
COMPUTE_CONTACTS, UPDATE_CONTACTS
All, AllBodies, Deformable, Rigid, Self
COPY_REFERENCES
TRANSPARENT, TWO_DIMENSIONAL
Constructor and Description |
---|
MFreeModel3d() |
MFreeModel3d(java.lang.String name) |
Modifier and Type | Method and Description |
---|---|
static void |
addControls(ControlPanel controlPanel,
FemModel femModel,
ModelComponent topModel) |
FemMarker |
addMarker(Point3d pos)
Adds a marker to this FemModel.
|
MFreeMeshComp |
addMesh(MeshBase mesh) |
MFreeMeshComp |
addMesh(java.lang.String name,
MeshBase mesh) |
SparseMatrixNd |
computeConsistentMassMatrix() |
PointAttachment |
createPointAttachment(Point pnt)
Returns a PointAttachment that attaches
pnt
to this component. |
int |
findDependentNodesAtRest(Point3d pnt,
java.util.List<FemNode3d> out)
Finds nodes containing the given point at rest
|
FemNode3d[] |
findNaturalCoordinates(Point3d pnt,
Point3d coords,
VectorNd N)
Finds the containing element and node coordinates
|
FemElement3d |
findNearestElement(Point3d nearest,
Point3d pnt)
Finds the nearest element and node coordinates
|
FemElement3d |
findNearestElement(Point3d nearest,
Point3d pnt,
VectorNd N)
Finds the nearest element and node coordinates
|
FemNode3d |
findNearestNode(Point3d pnt,
double maxDist)
Finds the nearest node to a specified point that is within
a specified maximum distance.
|
BVTree |
getElementBVTree() |
BVTree |
getNodeBVTree() |
void |
initialize(double t)
Causes this model to initialize itself at time t.
|
double |
integrate(Function3x1 fun) |
double |
integrateMass() |
double |
integrateVolume() |
MFreeMeshComp |
setSurfaceMesh(PolygonalMesh mesh) |
void |
updateJacobians() |
void |
updateNodeMasses(double totalMass,
VectorNd massMatrixDiag) |
void |
updateSlavePos()
Called when the system's dynamic position state changes, to update the
position state of the slave objects.
|
addBilateralConstraints, addConnector, addElement, addElements, addGeneralMassBlocks, addMarker, addMarker, addMaterialBundle, addMeshComp, addNode, addNodes, addNumberedElement, addNumberedMarker, addNumberedMarker, addNumberedNode, addPosJacobian, addSolveBlocks, addTransformableDependencies, addVelJacobian, advanceAuxState, attachFrame, clearElements, clearMaterialBundles, clearMeshComps, componentChanged, copy, createDefaultColorMap, createFrameAttachment, createFrameAttachment, createPointAttachment, createStiffnessMatrix, createSurfaceMesh, dispose, findContainingElement, findNearestSurfaceElement, getAllPropertyInfo, getAuxState, getAuxStateComponents, getAxisLength, getBilateralImpulses, getBilateralInfo, getBilateralSizes, getByNumber, getCollidable, getCollidableAncestor, getCollidables, getColorMap, getColorMapMode, getConnectors, getConstrainedComponents, getCopyReferences, getDynamicComponents, getElement, getElementByNumber, getElementNeighbors, getElements, getElementWidgetSize, getElementWidgetSizeMode, getFrame, getFrameConstraint, getHardIncompMethod, getIncompCompliance, getIncompressible, getIncompressibleRange, getInitialAuxState, getJacobianType, getMassMatrixValues, getMaterialBundles, getMeshComp, getMeshComp, getMeshComps, getNodalDeformationGradients, getNodalPlotRange, getNode, getNodeNeighbors, getNodes, getSelection, getSoftIncompMethod, getSoftIncompMethodRange, getSurfaceElement, getSurfaceMesh, getSurfaceMeshComp, getSurfaceMeshes, getSurfaceNode, getSurfaceVertex, invalidateRestData, invalidateStressAndStiffness, invalidateSurfaceMesh, isAbortOnInvertedElements, isAutoGeneratingSurface, isCompound, isDeformable, isDuplicatable, isFrameRelative, isFreeBody, isSurfaceMeshValid, isSurfaceNode, isVolumeValid, isWarnOnInvertedElements, markInvertedRestElements, mulInverseMass, numMeshComps, numQuadraticElements, numSurfaceMeshes, numTetElements, postscan, prerender, printANSYSElements, printANSYSNodes, recursivelyFinalizeAdvance, recursivelyInitialize, removeConnector, removeElement, removeMaterialBundle, removeMeshComp, removeNode, render, resetRestPosition, scaleDistance, scaleMass, scan, scanMesh, scanMesh, scanSurfaceMesh, scanSurfaceMesh, setAbortOnInvertedElements, setAutoGenerateSurface, setAuxState, setAxisLength, setBilateralImpulses, setCollidable, setColorMap, setColorMapMode, setComputeNodalStrain, setComputeNodalStress, setElementWidgetSize, setElementWidgetSizeMode, setFrameRelative, setIncompCompliance, setIncompressible, setMaterial, setSoftIncompMethod, setSurfaceMeshComp, setSurfaceRendering, setWarnOnInvertedElements, skipAuxState, subdivideHex, subdivideHexs, transformGeometry, transformGeometry, transformPose, updateBounds, updateConstraints, updateStress, updateStressAndStiffness, useAnsysNumbering, usingAttachedRelativeFrame, writeSurfaceMesh, writeSurfaceMesh, zeroImpulses
addFrictionConstraints, addMarker, addMarker, addMarker, addMarker, addMarker, addMarker, addUnilateralConstraints, applyForces, attachments, attachPoint, checkVelocityStability, clear, createDefaultMaterial, detachAllNodes, detachPoint, forcesNeedUpdating, getAttachments, getCharacteristicSize, getCollidables, getConstrainers, getDensity, getDensityMode, getEnergy, getForceEffectors, getGravity, getGravityMode, getImplicitIterations, getImplicitPrecision, getIntegrator, getMass, getMassDamping, getMaterial, getMatrixSolver, getNodeMass, getNumInverted, getParticleDamping, getRestVolume, getSlaveObjectComponents, getStiffnessDamping, getStressPlotRange, getStressPlotRangeMode, getStressPlotRanging, getStressPlotRangingMode, getSurfaceRendering, getSurfaceRenderingMode, getToleranceType, getUnilateralImpulses, getUnilateralInfo, getUnilateralSizes, getVolume, hasState, markers, maxFrictionConstraintSets, numElements, numNodes, printNodeMasses, propertyChanged, removeMarker, resetStressPlotRange, setBounds, setDensity, setDensityMode, setGravity, setGravity, setGravityMode, setImplicitIterations, setImplicitPrecision, setIntegrator, setLinearMaterial, setMassDamping, setMatrixSolver, setMaxStepSize, setParticleDamping, setStiffnessDamping, setStressPlotRange, setStressPlotRangeMode, setStressPlotRanging, setStressPlotRangingMode, setSurfaceRenderingMode, setToleranceType, setUnilateralImpulses, updateRestVolume, updateSlaveVel, updateVolume, validateMatrixSolver, zeroExternalForces
addActivePosImpulse, addAttachmentJacobian, addAttachmentSolveBlocks, addGeneralSolveBlocks, addPosJacobian, addVelJacobian, advance, applyAttachmentForces, buildMassMatrix, buildSolveMatrix, closePrintStateFile, collectInitialForces, createState, createVelocityJacobian, getActiveForces, getActiveMass, getActivePosDerivative, getActivePosState, getActivePosStateSize, getActiveStiffness, getActiveVelState, getActiveVelState, getActiveVelStateSize, getAttachmentConstraints, getAttachmentDerivatives, getBilateralConstraints, getBilateralConstraintSizes, getBilateralForces, getBilateralImpulses, getBilateralInfo, getDefaultStabilization, getDynamicDOFs, getDynamicsEnabled, getForces, getFrictionConstraints, getInitialState, getInverseMassMatrix, getMassMatrix, getNumBilateralImpulses, getNumUnilateralImpulses, getParametricForces, getParametricPosState, getParametricPosStateSize, getParametricPosTarget, getParametricVelState, getParametricVelStateSize, getParametricVelTarget, getPenetrationLimit, getPrintState, getProfiling, getSolveMatrixType, getSolver, getStabilization, getState, getStructureVersion, getUnilateralConstraints, getUnilateralConstraintSizes, getUnilateralForces, getUnilateralImpulses, getUnilateralInfo, getUpdateForcesAtStepEnd, getUpdateForcesAtStepEndMode, hasParameterizedType, numActiveComponents, numAttachedComponents, numParametricComponents, openPrintStateFile, preadvance, printActiveStiffness, reduceVelocityJacobian, reopenPrintStateFile, setActiveForces, setActivePosState, setActiveVelState, setBilateralImpulses, setDefaultStabilization, setDynamicsEnabled, setForces, setParametricForces, setParametricPosState, setParametricVelState, setPenetrationLimit, setPrintState, setPrintState, setProfiling, setStabilization, setState, setUnilateralImpulses, setUpdateForcesAtStepEnd, setUpdateForcesAtStepEndMode, topMechSystem, updateAttachmentPos, updateAttachmentVel, updateConstraints, updateForces, updatePosState, updateVelState, writeBilateralConstraintMatrix, writeBilateralConstraintMatrix, writeMassMatrix, writeMassMatrix, writeStiffnessMatrix, writeStiffnessMatrix
createRenderProps, getRenderHints, getRenderProps, isSelectable, numSelectionQueriesNeeded, setRenderProps
actionPerformed, copy, getInitialState, getMaxStepSize, getMenuItems, hierarchyContainsReferences, setInitialState
add, add, addAll, addComponents, addFixed, addNumbered, clone, contains, contains, containsAll, ensureCapacity, findComponent, get, get, getChildren, getNavpanelDisplay, getNumberLimit, getShortName, getTypeParameter, hasChildren, indexOf, invalidateNumbers, isEmpty, iterator, nextComponentNumber, numComponents, remove, remove, removeAll, removeAll, removeComponents, retainAll, set, setNavpanelDisplay, setNumbered, setNumberingStartAtOne, setShortName, size, toArray, toArray, updateNameMap
checkFlag, checkName, checkNameUniqueness, clearFlag, connectToHierarchy, createTempFlag, disconnectFromHierarchy, getGrandParent, getHardReferences, getName, getNameRange, getNavpanelVisibility, getNavpanelVisibility, getNumber, getParent, getProperty, getSoftReferences, isConnectedToHierarchy, isFixed, isMarked, isSelected, isWritable, makeValidName, makeValidName, notifyParentOfChange, printReferences, recursivelyContained, recursivelyContains, removeTempFlag, setFixed, setFlag, setMarked, setName, setNavpanelVisibility, setNavpanelVisibility, setNumber, setParent, setSelected, updateReferences, write
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
checkVelocityStability, getAttachments, getConstrainers, getForceEffectors, getSlaveObjectComponents
advance, getMaxStepSize, preadvance
createState, getInitialState, getState, setState
addActivePosImpulse, addPosJacobian, addVelJacobian, buildMassMatrix, buildSolveMatrix, getActiveForces, getActivePosDerivative, getActivePosState, getActivePosStateSize, getActiveVelState, getActiveVelStateSize, getBilateralConstraints, getBilateralImpulses, getBilateralInfo, getFrictionConstraints, getInverseMassMatrix, getMassMatrix, getParametricForces, getParametricPosState, getParametricPosStateSize, getParametricPosTarget, getParametricVelState, getParametricVelStateSize, getParametricVelTarget, getSolveMatrixType, getStructureVersion, getUnilateralConstraints, getUnilateralImpulses, getUnilateralInfo, maxFrictionConstraintSets, numActiveComponents, numParametricComponents, setActiveForces, setActivePosState, setActiveVelState, setBilateralImpulses, setParametricForces, setParametricPosState, setParametricVelState, setUnilateralImpulses, updateConstraints, updateForces
getName
public MFreeModel3d()
public MFreeModel3d(java.lang.String name)
public MFreeMeshComp setSurfaceMesh(PolygonalMesh mesh)
setSurfaceMesh
in class FemModel3d
public BVTree getNodeBVTree()
public BVTree getElementBVTree()
public FemMarker addMarker(Point3d pos)
project == true
, it will be projected onto
the model's surface.addMarker
in class FemModel3d
pos
- position to place a marker in the modelpublic MFreeMeshComp addMesh(MeshBase mesh)
addMesh
in class FemModel3d
public MFreeMeshComp addMesh(java.lang.String name, MeshBase mesh)
addMesh
in class FemModel3d
public FemNode3d[] findNaturalCoordinates(Point3d pnt, Point3d coords, VectorNd N)
pnt
- 3D point in world coordinates to find natural coordinates ofcoords
- natural coordinatesN
- shape function valuespublic FemElement3d findNearestElement(Point3d nearest, Point3d pnt)
findNearestElement
in class FemModel3d
nearest
- nearest pointpnt
- Point for which the nearest element is desired.public FemElement3d findNearestElement(Point3d nearest, Point3d pnt, VectorNd N)
nearest
- nearest pointN
- shape function evaluation at pointpublic FemNode3d findNearestNode(Point3d pnt, double maxDist)
null
is returned.findNearestNode
in class FemModel3d
pnt
- Point for which the nearest node should be locatedmaxDist
- Maximum distance that the node must be from the
point. If maxDist
< 0, then null
will be returned.null
if there is no such pointpublic void updateSlavePos()
HasSlaveObjects
updateSlavePos
in interface HasSlaveObjects
updateSlavePos
in class FemModel3d
public static void addControls(ControlPanel controlPanel, FemModel femModel, ModelComponent topModel)
public int findDependentNodesAtRest(Point3d pnt, java.util.List<FemNode3d> out)
pnt
- point to find nodes forout
- output list of nodes influencing regionpublic double integrate(Function3x1 fun)
public double integrateVolume()
public double integrateMass()
public SparseMatrixNd computeConsistentMassMatrix()
public void updateNodeMasses(double totalMass, VectorNd massMatrixDiag)
public void updateJacobians()
public PointAttachment createPointAttachment(Point pnt)
PointAttachable
pnt
to this component. It should not be assumed that pnt
is currently connected to the component hierarchy, and no attempt
should be made to connect the returned attachment to the hierarchy;
the latter, if desired, is the responsibility of the caller.
In some cases, it may not be possible to attach the point at its present location. In that case, the method will create an attachment to the nearest feasible location.
createPointAttachment
in interface PointAttachable
createPointAttachment
in class FemModel3d
pnt
- point for which an attachment should be createdpnt
to this componentpublic void initialize(double t)
ModelBase
HasState.setState(artisynth.core.modelbase.ComponentState)
, in which case t
may have an arbitrary value.initialize
in interface Model
initialize
in class MechSystemBase
t
- initialization time (seconds)