public class MFreeModel3d extends FemModel3d
FemModel.ElementFilter, FemModel.IncompMethod, FemModel.Ranging, FemModel.SurfaceRenderMechSystem.ConstraintInfo, MechSystem.FrictionInfoCollidable.Collidability, Collidable.GroupHasAuxState.StateContextCompositeComponent.NavpanelDisplayabortOnInvertedElems, checkTangentStability, DEFAULT_HARD_INCOMP, DEFAULT_SOFT_INCOMP, DEFAULT_SURFACEMESH_NAME, defaultAutoGenerateSurface, detJStepReductionLimit, frameMassFraction, myProps, noIncompressStiffnessDamping, useFrameRelativeCouplingMassesmyParametricsInSystemMatrixDEFAULT_NAVPANEL_DISPLAYenforceUniqueCompositeNames, enforceUniqueNames, myNumber, NULL_OBJ, useCompactPathNamesTG_ARTICULATED, TG_DRAGGER, TG_PRESERVE_ORIENTATION, TG_SIMULATINGCOMPUTE_CONTACTS, UPDATE_CONTACTSAll, AllBodies, Deformable, Rigid, SelfCOPY_REFERENCESTRANSPARENT, 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, zeroImpulsesaddFrictionConstraints, 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, zeroExternalForcesaddActivePosImpulse, 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, writeStiffnessMatrixcreateRenderProps, getRenderHints, getRenderProps, isSelectable, numSelectionQueriesNeeded, setRenderPropsactionPerformed, copy, getInitialState, getMaxStepSize, getMenuItems, hierarchyContainsReferences, setInitialStateadd, 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, updateNameMapcheckFlag, 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, writeequals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcheckVelocityStability, getAttachments, getConstrainers, getForceEffectors, getSlaveObjectComponentsadvance, getMaxStepSize, preadvancecreateState, getInitialState, getState, setStateaddActivePosImpulse, 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, updateForcesgetNamepublic MFreeModel3d()
public MFreeModel3d(java.lang.String name)
public MFreeMeshComp setSurfaceMesh(PolygonalMesh mesh)
setSurfaceMesh in class FemModel3dpublic BVTree getNodeBVTree()
public BVTree getElementBVTree()
public FemMarker addMarker(Point3d pos)
project == true, it will be projected onto
the model's surface.addMarker in class FemModel3dpos - position to place a marker in the modelpublic MFreeMeshComp addMesh(MeshBase mesh)
addMesh in class FemModel3dpublic MFreeMeshComp addMesh(java.lang.String name, MeshBase mesh)
addMesh in class FemModel3dpublic 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 FemModel3dnearest - 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 FemModel3dpnt - 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()
HasSlaveObjectsupdateSlavePos in interface HasSlaveObjectsupdateSlavePos in class FemModel3dpublic 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)
PointAttachablepnt
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 PointAttachablecreatePointAttachment in class FemModel3dpnt - point for which an attachment should be createdpnt to this componentpublic void initialize(double t)
ModelBaseHasState.setState(artisynth.core.modelbase.ComponentState), in which case t may have an arbitrary value.initialize in interface Modelinitialize in class MechSystemBaset - initialization time (seconds)