public class MFreeModel3d extends FemModel3d
| Modifier and Type | Class and Description |
|---|---|
static class |
MFreeModel3d.MFreeRestNode3d
Wrapper boundable class around MFreeNode3d that considers the node
at rest, as well as its influence radius.
|
FemModel.ElementFilter, FemModel.IncompMethod, FemModel.Ranging, FemModel.StressStrainMeasure, FemModel.SurfaceRenderMechSystemBase.ConstraintForceStateSaverCollidable.Collidability, Collidable.GroupModelComponent.FilePathSaveType, ModelComponent.NavpanelVisibilityMechSystem.ConstraintInfoCompositeComponent.NavpanelDisplayabortOnInvertedElems, checkTangentStability, debugx, DEFAULT_ABORT_ON_INVERTED_ELEMENTS, DEFAULT_GROUNDED, DEFAULT_HARD_INCOMP, DEFAULT_SOFT_INCOMP, DEFAULT_SURFACEMESH_NAME, defaultAutoGenerateSurface, detJStepReductionLimit, frameMassFraction, myProps, noIncompressStiffnessDamping, useFrameRelativeCouplingMasses, useNodalMassWeightsDEFAULT_STABILIZATION, DEFAULT_USE_IMPLICIT_FRICTION, myParametricsInSystemMatrix, mySaveForcesAsState, useAllDynamicCompsDEFAULT_MAX_STEP_SIZEDEFAULT_NAVPANEL_DISPLAYenforceUniqueCompositeNames, enforceUniqueNames, myNumber, NULL_OBJ, useCompactPathNamesTG_ARTICULATED, TG_DRAGGER, TG_PRESERVE_ORIENTATION, TG_SIMULATINGAll, AllBodies, Deformable, Rigid, SelfCOPY_REFERENCES, REST_POSITIONSTATE_IS_VOLATILECOMPUTE_CONTACTS, UPDATE_CONTACTSTRANSPARENT, 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) |
boolean |
areCoplanarAtRest(MFreeNode3d[] nodes) |
SparseMatrixNd |
computeConsistentMassMatrix() |
PointAttachment |
createPointAttachment(Point pnt)
Returns a PointAttachment that attaches
pnt
to this component. |
PointAttachment |
createPointAttachment(Point pnt,
double reduceTol) |
MFreeNode3d[] |
findNaturalCoordinates(Point3d pnt,
Point3d coords,
VectorNd N)
Finds the containing element and node coordinates
|
MFreeNode3d[] |
findNaturalRestCoordinates(Point3d rpnt,
Point3d coords,
VectorNd N)
Computes natural coordinates at rest, along with dependent nodes and the shape
function evaluated at the given point
|
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 |
getBVTree()
Return BV tree for those who know what to do with it
|
BVTree |
getElementBVTree()
The element bv tree bounds integration points contained by the element, which may be
slightly smaller than the true element bounds
|
BVTree |
getNodeBVTree()
Gets a BV tree that surrounds nodes (both false and true positions)
Note: does not surround influence regions, since these may be quite deformed
if not at rest, only bounds the nodes themselves
|
BVTree |
getRestNodeBVTree()
BV Tree that bounds the nodes at rest, and their spherical influence regions.
|
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.
|
addAuxMaterialBundle, addBilateralConstraints, addConnector, addCutPlane, addElement, addElements, addField, addGeneralMassBlocks, addMarker, addMarker, addMaterialBundle, addMeshComp, addNode, addNodes, addNumberedElement, addNumberedMarker, addNumberedMarker, addNumberedNode, addNumberedShellElement, addPosJacobian, addShellElement, addShellElements, addSolveBlocks, addTransformableDependencies, addVelJacobian, attachFrame, checkElementCondition, clearAuxMaterialBundles, clearCutPlanes, clearElementConditionInfo, clearElements, clearFields, clearMaterialBundles, clearMeshComps, clearShellElements, collectStrainEnergy, computeStressAndStiffness, containsConnector, copy, createDefaultColorMap, createFrameAttachment, createFrameAttachment, createSurfaceMesh, dispose, findContainingElement, findNearestElement, findNearestNodes, findNearestShellElement, findNearestSurfaceElement, findNearestVolumetricElement, getAllElements, getAllPropertyInfo, getAttachments, getAugmentingMaterials, getAuxMaterialBundles, getAuxStateComponents, getAxisLength, getBilateralForces, getBilateralInfo, getBilateralSizes, getByNumber, getCollidable, getCollidableAncestor, getCollidables, getColorMap, getColorMapMode, getConnectors, getConstrainedComponents, getCopyReferences, getCutPlane, getCutPlanes, getDirectorRenderLen, getDynamicComponents, getDynamicComponents, getElement, getElementByNumber, getElementMaterial, getElementNeighbors, getElementRestVolumes, getElements, getElementWidgetSize, getElementWidgetSizeMode, getField, getFields, getFrame, getFrameConstraint, getHardIncompMethod, getIncompCompliance, getIncompForces, getIncompressible, getIncompressibleRange, getJacobianType, getMassMatrixValues, getMaterialBundles, getMeshComp, getMeshComp, getMeshComps, getNodalPlotRange, getNodalPlotRangeX, getNode, getNodeByNumber, getNodeNeighbors, getNodes, getOneBasedNodeElementNumbering, getSelection, getShellElement, getShellElementByNumber, getShellElements, getShellSurfaceElement, getSoftIncompMethod, getSoftIncompMethodRange, getState, getSurfaceElement, getSurfaceMesh, getSurfaceMeshComp, getSurfaceMeshes, getSurfaceNode, getSurfaceVertex, getTetAspectRatios, getUseConsistentMass, handleComponentChanged, hasHexMesh, hasTetMesh, invalidateElementRotationData, invalidateRestData, invalidateStressAndStiffness, invalidateSurfaceMesh, isAbortOnInvertedElements, isAutoGeneratingSurface, isCompound, isDeformable, isDuplicatable, isFrameRelative, isFreeBody, isGrounded, isSurfaceEdge, isSurfaceMeshValid, isSurfaceNode, isVolumeValid, isWarnOnInvertedElements, markInvertedRestElements, mulInverseMass, numAllElements, numCutPlanes, numElements, numFields, numHexElements, numMeshComps, numQuadraticElements, numShellElements, numSurfaceMeshes, numTetElements, postscan, prerender, printANSYSElements, printANSYSNodes, recursivelyFinalizeAdvance, recursivelyInitialize, removeAuxMaterialBundle, removeConnector, removeCutPlane, removeElement, removeField, removeMaterialBundle, removeMeshComp, removeNode, removeShellElement, render, resetRestPosition, scaleDistance, scaleMass, scan, scanMesh, scanMesh, scanSurfaceMesh, scanSurfaceMesh, setAbortOnInvertedElements, setAutoGenerateSurface, setAxisLength, setBilateralForces, setCollidable, setColorMap, setColorMapMode, setComputeStrainEnergy, setDirectorRenderLen, setElementWidgetSize, setElementWidgetSizeMode, setFrameRelative, setGrounded, setIncompCompliance, setIncompForces, setIncompressible, setMaterial, setOneBasedNodeElementNumbering, setSoftIncompMethod, setState, setSurfaceMeshComp, setUseConsistentMass, setWarnOnInvertedElements, subdivideHex, subdivideHexs, transformGeometry, transformGeometry, transformPose, updateBounds, updateConstraints, updateStress, updateStressAndStiffness, updateStressStrainRenderFlags, usingAttachedRelativeFrame, writeSurfaceMesh, writeSurfaceMesh, zeroForcesaddFrictionConstraints, addMarker, addMarker, addMarker, addMarker, addMarker, addMarker, addUnilateralConstraints, applyForces, attachments, attachPoint, checkVelocityStability, clear, clearComputeNodalStressStrain, componentChanged, createDefaultMaterial, detachAllNodes, detachPoint, forcesNeedUpdating, getCharacteristicSize, getCollidables, getComputeNodalEnergyDensity, getComputeNodalStrain, getComputeNodalStress, getComputeStrainEnergy, getConstrainers, getDensity, getDensityMode, getEnergy, getForceEffectors, getFrictionForces, getFrictionState, getGravity, getGravityMode, getImplicitIterations, getImplicitPrecision, getKineticEnergy, getMass, getMassDamping, getMaterial, getNodeMass, getNumInverted, getParticleDamping, getRestVolume, getSlaveObjectComponents, getStiffnessDamping, getStrainEnergy, getStressPlotRange, getStressPlotRangeMode, getStressPlotRanging, getStressPlotRangingMode, getSurfaceRendering, getSurfaceRenderingMode, getToleranceType, getUnilateralForces, getUnilateralInfo, getUnilateralSizes, getUnilateralState, getVolume, hasState, markers, maxFrictionConstraintSets, needsNodalStress, numNodes, printNodeMasses, propertyChanged, removeMarker, resetAutoStressPlotRange, setBounds, setComputeNodalEnergyDensity, setComputeNodalStrain, setComputeNodalStress, setComputeNodalStressStrain, setDensity, setDensityMode, setFrictionForces, setFrictionState, setGravity, setGravity, setGravityMode, setImplicitIterations, setImplicitPrecision, setLinearMaterial, setMassDamping, setMaxStepSize, setParticleDamping, setStiffnessDamping, setStressPlotRange, setStressPlotRangeMode, setStressPlotRanging, setStressPlotRangingMode, setSurfaceRendering, setSurfaceRenderingMode, setToleranceType, setUnilateralForces, setUnilateralState, updateRestVolume, updateSlaveVel, updateVolume, zeroExternalForcesaddActivePosImpulse, addAttachmentJacobian, addAttachmentSolveBlocks, addGeneralSolveBlocks, addPosJacobian, addVelJacobian, advance, advanceAuxState, applyAttachmentForces, buildMassMatrix, buildSolveMatrix, closePrintStateFile, collectInitialForces, createState, createVelocityJacobian, getActiveDampingMatrix, getActiveDynamicComponents, getActiveForces, getActiveMass, getActiveMassMatrix, getActivePosDerivative, getActivePosState, getActivePosStateSize, getActiveStiffnessMatrix, getActiveVelState, getActiveVelState, getActiveVelStateSize, getAttachmentConstraints, getAttachmentDerivatives, getAuxAdvanceState, getAuxVarDerivative, getAuxVarState, getAuxVarStateSize, getBilateralConstraints, getBilateralConstraintSizes, getBilateralForces, getBilateralInfo, getDefaultMatrixSolver, getDefaultStabilization, getDefaultUseImplicitFriction, getDynamicComponents, getDynamicDOFs, getDynamicsEnabled, getForceEffectors, getForces, getFrictionConstraints, getFrictionForces, getFrictionState, getInitialState, getIntegrator, getInverseMassMatrix, getMassMatrix, getMatrixSolver, getMatrixSolverRange, getNumBilateralForces, getNumUnilateralForces, getParametricForces, getParametricPosState, getParametricPosStateSize, getParametricPosTarget, getParametricVelState, getParametricVelStateSize, getParametricVelTarget, getPenetrationLimit, getPrintState, getProfiling, getSolveMatrixType, getSolver, getStabilization, getState, getStructureVersion, getUnilateralConstraints, getUnilateralConstraintSizes, getUnilateralForces, getUnilateralInfo, getUnilateralState, getUpdateForcesAtStepEnd, getUpdateForcesAtStepEndMode, getUseImplicitFriction, isBilateralStructureConstant, numActiveComponents, numAttachedComponents, numParametricComponents, openPrintStateFile, placeDynamicComponent, preadvance, printActiveMass, printActiveMass, printActiveStiffness, printActiveStiffness, recursivelyPrepareAdvance, reduceVelocityJacobian, reopenPrintStateFile, setActiveForces, setActivePosState, setActiveVelState, setAuxAdvanceState, setAuxVarState, setBilateralForces, setDefaultMatrixSolver, setDefaultStabilization, setDefaultUseImplicitFriction, setDynamicsEnabled, setForces, setFrictionForces, setFrictionState, setIntegrator, setMatrixSolver, setParametricForces, setParametricPosState, setParametricVelState, setPenetrationLimit, setPrintState, setPrintState, setProfiling, setStabilization, setState, setUnilateralForces, setUnilateralState, setUpdateForcesAtStepEnd, setUpdateForcesAtStepEndMode, setUseImplicitFriction, topMechSystem, updateAttachmentPos, updateAttachmentVel, updateConstraints, updateDynamicComponentLists, updateForceComponentList, updateForces, updatePosState, updateVelState, writeBilateralConstraintMatrix, writeBilateralConstraintMatrix, writeMassMatrix, writeMassMatrix, writePrintStateHeader, writeStiffnessMatrix, writeStiffnessMatrixcreateRenderProps, getRenderHints, getRenderProps, isSelectable, numSelectionQueriesNeeded, setRenderPropsactionPerformed, copy, getDefaultMaxStepSize, getMaxStepSize, getMenuItems, hasParameterizedType, hierarchyContainsReferences, setDefaultMaxStepSizeadd, add, addAll, addComponents, addFixed, addNumbered, clone, contains, contains, containsAll, ensureCapacity, findComponent, get, get, getChildren, getMinNumber, getNavpanelDisplay, getNumberLimit, getOneBasedNumbering, getParameterType, getShortName, hasChildren, incrementNumbering, indexOf, invalidateNumbers, isEditable, isEmpty, iterator, nextComponentNumber, numComponents, remove, remove, removeAll, removeAll, removeComponents, resetNumbersToIndices, retainAll, set, setEditable, setNavpanelDisplay, setNumbered, setOneBasedNumbering, setShortName, size, toArray, toArray, updateNameMapcheckFlag, checkName, checkNameUniqueness, clearFlag, connectToHierarchy, createTempFlag, disconnectFromHierarchy, getGrandParent, getHardReferences, getName, getNameRange, getNavpanelVisibility, getNavpanelVisibility, getNumber, getParent, getProperty, getSoftReferences, isFixed, isMarked, isScanning, isSelected, isWritable, makeValidName, makeValidName, notifyParentOfChange, printReferences, recursivelyContained, recursivelyContains, removeTempFlag, setFixed, setFlag, setMarked, setName, setNavpanelVisibility, setNavpanelVisibility, setNumber, setParent, setScanning, setSelected, setWritable, updateReferences, writeequals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waittransformPriorityadvanceState, getAuxVarDerivative, getAuxVarState, getStateVersion, hasState, numAuxVars, requiresAdvance, setAuxVarStateconnectToHierarchy, disconnectFromHierarchy, getHardReferences, getName, getNavpanelVisibility, getNumber, getSoftReferences, hasState, isFixed, isMarked, isSelected, notifyParentOfChange, setFixed, setMarked, setName, setNumber, setParent, setSelected, setWritable, updateReferencesgetPropertygetChildren, hasChildrenisWritable, writegetMaxStepSizegetNameequals, hashCode, parallelStream, removeIf, spliterator, streamrecursivelyFindpublic MFreeModel3d()
public MFreeModel3d(java.lang.String name)
public MFreeMeshComp setSurfaceMesh(PolygonalMesh mesh)
setSurfaceMesh in class FemModel3dpublic BVTree getRestNodeBVTree()
MFreeModel3d.MFreeRestNode3dpublic BVTree getNodeBVTree()
public BVTree getElementBVTree()
public BVTree getBVTree()
FemModel3dgetBVTree in class FemModel3dgetElementBVTree()public FemMarker addMarker(Point3d pos)
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 boolean areCoplanarAtRest(MFreeNode3d[] nodes)
public MFreeNode3d[] findNaturalRestCoordinates(Point3d rpnt, Point3d coords, VectorNd N)
rpnt - position at restcoords - coordinates at restN - evaluated shape functionspublic MFreeNode3d[] 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 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, double reduceTol)
createPointAttachment in class FemModel3dpublic 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)