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.SurfaceRender
MechSystemBase.ConstraintForceStateSaver
Collidable.Collidability, Collidable.Group
ModelComponent.NavpanelVisibility
MechSystem.ConstraintInfo
CompositeComponent.NavpanelDisplay
abortOnInvertedElems, checkTangentStability, debugx, DEFAULT_ABORT_ON_INVERTED_ELEMENTS, DEFAULT_HARD_INCOMP, DEFAULT_SOFT_INCOMP, DEFAULT_SURFACEMESH_NAME, defaultAutoGenerateSurface, detJStepReductionLimit, frameMassFraction, myProps, noIncompressStiffnessDamping, useFrameRelativeCouplingMasses, useNodalMassWeights
DEFAULT_STABILIZATION, DEFAULT_USE_IMPLICIT_FRICTION, myParametricsInSystemMatrix, mySaveForcesAsState, useAllDynamicComps
DEFAULT_MAX_STEP_SIZE
DEFAULT_NAVPANEL_DISPLAY
enforceUniqueCompositeNames, enforceUniqueNames, myNumber, NULL_OBJ, useCompactPathNames
TG_ARTICULATED, TG_DRAGGER, TG_PRESERVE_ORIENTATION, TG_SIMULATING
All, AllBodies, Deformable, Rigid, Self
COPY_REFERENCES, REST_POSITION
STATE_IS_VOLATILE
COMPUTE_CONTACTS, UPDATE_CONTACTS
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) |
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, 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, setIncompCompliance, setIncompForces, setIncompressible, setMaterial, setOneBasedNodeElementNumbering, setSoftIncompMethod, setState, setSurfaceMeshComp, setUseConsistentMass, setWarnOnInvertedElements, subdivideHex, subdivideHexs, transformGeometry, transformGeometry, transformPose, updateBounds, updateConstraints, updateStress, updateStressAndStiffness, updateStressStrainRenderFlags, usingAttachedRelativeFrame, writeSurfaceMesh, writeSurfaceMesh, zeroForces
addFrictionConstraints, 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, zeroExternalForces
addActivePosImpulse, 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, 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, updateForces, updatePosState, updateVelState, writeBilateralConstraintMatrix, writeBilateralConstraintMatrix, writeMassMatrix, writeMassMatrix, writePrintStateHeader, writeStiffnessMatrix, writeStiffnessMatrix
createRenderProps, getRenderHints, getRenderProps, isSelectable, numSelectionQueriesNeeded, setRenderProps
actionPerformed, copy, getDefaultMaxStepSize, getMaxStepSize, getMenuItems, hasParameterizedType, hierarchyContainsReferences, setDefaultMaxStepSize
add, add, addAll, addComponents, addFixed, addNumbered, clone, contains, contains, containsAll, ensureCapacity, findComponent, get, get, getChildren, getNavpanelDisplay, getNumberLimit, getOneBasedNumbering, getParameterType, getShortName, hasChildren, indexOf, invalidateNumbers, isEditable, isEmpty, iterator, nextComponentNumber, numComponents, remove, remove, removeAll, removeAll, removeComponents, resetNumbersToIndices, retainAll, set, setEditable, setNavpanelDisplay, setNumbered, setOneBasedNumbering, setShortName, size, toArray, toArray, updateNameMap
checkFlag, 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, write
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
transformPriority
advanceState, getAuxVarDerivative, getAuxVarState, getStateVersion, hasState, numAuxVars, requiresAdvance, setAuxVarState
connectToHierarchy, disconnectFromHierarchy, getHardReferences, getName, getNavpanelVisibility, getNumber, getSoftReferences, hasState, isFixed, isMarked, isSelected, notifyParentOfChange, setFixed, setMarked, setName, setNumber, setParent, setSelected, setWritable, updateReferences
getProperty
getChildren, hasChildren
isWritable, write
getMaxStepSize
getName
public MFreeModel3d()
public MFreeModel3d(java.lang.String name)
public MFreeMeshComp setSurfaceMesh(PolygonalMesh mesh)
setSurfaceMesh
in class FemModel3d
public BVTree getRestNodeBVTree()
MFreeModel3d.MFreeRestNode3d
public BVTree getNodeBVTree()
public BVTree getElementBVTree()
public BVTree getBVTree()
FemModel3d
getBVTree
in class FemModel3d
getElementBVTree()
public FemMarker addMarker(Point3d pos)
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 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 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 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 FemModel3d
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)