public interface DynamicComponent extends ModelComponent, ForceEffector
ModelComponent.NavpanelVisibility
Modifier and Type | Method and Description |
---|---|
void |
addMasterAttachment(DynamicAttachment a)
Add a DynamicAttachment to the list of master attachments associated
with this component.
|
void |
addPosImpulse(double[] xbuf,
int xidx,
double h,
double[] vbuf,
int vidx) |
void |
addSolveBlock(SparseNumberedBlockMatrix S) |
void |
applyExternalForces() |
void |
applyGravity(Vector3d gacc)
Applies a gravity force to this component, given a prescribed
gravity acceleration vector.
|
boolean |
checkFlag(int mask)
Check if a flag is set
|
void |
clearFlag(int mask)
Clear a flag
|
MatrixBlock |
createMassBlock()
Create a matrix block for representing the mass of this component,
initialized to the component's effective mass (instrinsic mass
plus the mass due to all attachmented components).
|
DynamicAttachment |
getAttachment()
Returns the slave attachment associated with this component, if any.
|
void |
getEffectiveMass(Matrix M,
double t)
Gets the effective mass of this component at a particular time.
|
int |
getEffectiveMassForces(VectorNd f,
double t,
int idx)
Gets the mass forces for this component at a particular time.
|
int |
getForce(double[] buf,
int idx) |
void |
getInverseMass(Matrix Minv,
Matrix M)
Inverts a mass for this component.
|
double |
getMass(double t)
Returns the scalar mass of this component at time t.
|
void |
getMass(Matrix M,
double t)
Gets the mass of this component at a particular time.
|
java.util.LinkedList<DynamicAttachment> |
getMasterAttachments()
Returns a list of the attachments for which this component is a master, or
null if there are no such attachments.
|
int |
getPosDerivative(double[] buf,
int idx) |
int |
getPosState(double[] buf,
int idx) |
int |
getPosStateSize() |
int |
getSolveIndex() |
int |
getVelState(double[] buf,
int idx) |
int |
getVelStateSize() |
boolean |
isActive()
Returns true if this component is active.
|
boolean |
isAttached()
Returns true if this component is attached.
|
boolean |
isControllable()
Returns true is this component is active, or it is attached to one
or more other components which ultimately are attached to at least
one active component.
|
boolean |
isDynamic()
Returns true if this component is dynamic.
|
boolean |
isMassConstant() |
boolean |
isParametric()
Returns true if the state of this component is determined parametrically;
i.e., it is neither dynamic nor attached.
|
int |
mulInverseEffectiveMass(Matrix M,
double[] a,
double[] f,
int idx) |
void |
removeMasterAttachment(DynamicAttachment a)
Removes a DynamicAttachment from the list of master attachments associated
with this component.
|
void |
resetEffectiveMass()
Resets the effective mass of this component to the nominal mass.
|
void |
setAttached(DynamicAttachment attachment)
Attach this component to another via a DynamicAttachment object.
|
void |
setFlag(int mask)
Set flag
|
int |
setForce(double[] buf,
int idx) |
int |
setPosState(double[] buf,
int idx) |
void |
setSolveIndex(int idx) |
int |
setVelState(double[] buf,
int idx) |
boolean |
velocityLimitExceeded(double tlimit,
double rlimit)
Checks if the current component velocity exceeds specified limits.
|
void |
zeroExternalForces() |
void |
zeroForces() |
connectToHierarchy, disconnectFromHierarchy, getHardReferences, getName, getNavpanelVisibility, getNumber, getParent, getSoftReferences, hasState, isFixed, isMarked, isSelected, notifyParentOfChange, postscan, scan, setFixed, setMarked, setName, setNumber, setParent, setSelected, updateReferences
getAllPropertyInfo, getProperty
getChildren, hasChildren
isWritable, write
addPosJacobian, addSolveBlocks, addVelJacobian, applyForces, getJacobianType
DynamicAttachment getAttachment()
java.util.LinkedList<DynamicAttachment> getMasterAttachments()
void setAttached(DynamicAttachment attachment)
attachment
- Specifies the attachment relationship between
this component and its master(s)void addMasterAttachment(DynamicAttachment a)
a
- master attachment to addvoid removeMasterAttachment(DynamicAttachment a)
a
- master attachment to removeboolean isDynamic()
boolean isActive()
boolean isAttached()
boolean isParametric()
boolean isControllable()
int getSolveIndex()
void setSolveIndex(int idx)
MatrixBlock createMassBlock()
boolean isMassConstant()
double getMass(double t)
void getMass(Matrix M, double t)
M
- matrix to return the mass int
- current timeint getEffectiveMassForces(VectorNd f, double t, int idx)
f
, starting at the location
specified by idx
. Upon return, this method should
return the value of idx
incremented by the dimension
of the mass forces.f
- vector to return the forces int
- current timeidx
- starting location within f
where forces should be storedidx
void getInverseMass(Matrix Minv, Matrix M)
Minv
- matrix to return the inverse mass inM
- matrix containing the mass to be invertedvoid resetEffectiveMass()
void getEffectiveMass(Matrix M, double t)
M
- matrix to return the mass int
- current timeint mulInverseEffectiveMass(Matrix M, double[] a, double[] f, int idx)
void addSolveBlock(SparseNumberedBlockMatrix S)
void addPosImpulse(double[] xbuf, int xidx, double h, double[] vbuf, int vidx)
int getPosDerivative(double[] buf, int idx)
int getPosState(double[] buf, int idx)
int setPosState(double[] buf, int idx)
int getVelState(double[] buf, int idx)
int setVelState(double[] buf, int idx)
int setForce(double[] buf, int idx)
int getForce(double[] buf, int idx)
int getPosStateSize()
int getVelStateSize()
void zeroForces()
void zeroExternalForces()
void applyExternalForces()
boolean velocityLimitExceeded(double tlimit, double rlimit)
tlimit
- translational velocity limitrlimit
- rotational velocity limitvoid applyGravity(Vector3d gacc)
void setFlag(int mask)
boolean checkFlag(int mask)
void clearFlag(int mask)