public class NodeFrameNodeAttachment extends java.lang.Object implements DynamicAttachment
xw = R xl + p vw = vf - [R xl] wf + R vl
Constructor and Description |
---|
NodeFrameNodeAttachment(FemNode3d node,
FrameNode3d frameNode) |
Modifier and Type | Method and Description |
---|---|
void |
addBackRefs()
Every master component should contain a back reference to each
attachment that references it.
|
void |
addMassToMasters() |
void |
applyForces() |
boolean |
getDerivative(double[] buf,
int idx) |
MatrixBlock |
getGT(int idx)
Returns the transpose of the constraint matrix G associated
with the idx-th master component.
|
DynamicComponent[] |
getMasters() |
DynamicComponent |
getSlave()
Returns the slave DynamicMechComponent associated with this attachment.
|
void |
invalidateMasters() |
void |
mulSubGT(double[] ybuf,
int yoff,
double[] xbuf,
int xoff,
int idx)
Computes
|
void |
mulSubGTM(MatrixBlock D,
MatrixBlock M,
int idx)
Computes
|
void |
mulSubMG(MatrixBlock D,
MatrixBlock M,
int idx)
Computes
|
int |
numMasters() |
void |
removeBackRefs()
Removes the back reference to this attachment's slave component
from each of the master component.
|
void |
setSlaveAffectsStiffness(boolean affects) |
boolean |
slaveAffectsStiffness() |
void |
updateAttachment()
Update attachment to reflect changes in the slave state.
|
void |
updatePosStates() |
void |
updateVelStates() |
public NodeFrameNodeAttachment(FemNode3d node, FrameNode3d frameNode)
public boolean slaveAffectsStiffness()
slaveAffectsStiffness
in interface DynamicAttachment
public void setSlaveAffectsStiffness(boolean affects)
setSlaveAffectsStiffness
in interface DynamicAttachment
public void updateAttachment()
DynamicAttachment
updateAttachment
in interface DynamicAttachment
public void updatePosStates()
updatePosStates
in interface DynamicAttachment
public void updateVelStates()
updateVelStates
in interface DynamicAttachment
public void applyForces()
applyForces
in interface DynamicAttachment
public DynamicComponent getSlave()
DynamicAttachment
null
.getSlave
in interface DynamicAttachment
public void addMassToMasters()
addMassToMasters
in interface DynamicAttachment
public boolean getDerivative(double[] buf, int idx)
getDerivative
in interface DynamicAttachment
public DynamicComponent[] getMasters()
getMasters
in interface DynamicAttachment
public int numMasters()
numMasters
in interface DynamicAttachment
public void invalidateMasters()
invalidateMasters
in interface DynamicAttachment
public void mulSubMG(MatrixBlock D, MatrixBlock M, int idx)
DynamicAttachment
D -= M Gwhere D and M are matrices associated with master and slave components, respectively, and G is the constraint matrix for the attachment.
mulSubMG
in interface DynamicAttachment
D
- dependent matrix associated with a master componentM
- matrix associated with a slave componentpublic MatrixBlock getGT(int idx)
DynamicAttachment
getGT
in interface DynamicAttachment
idx
- index of the master componentpublic void mulSubGTM(MatrixBlock D, MatrixBlock M, int idx)
DynamicAttachment
T D -= G Mwhere D and M are matrices associated with master and slave components, respectively, and G is the constraint matrix for the attachment.
mulSubGTM
in interface DynamicAttachment
D
- dependent matrix associated with a master componentM
- matrix associated with a slave componentpublic void mulSubGT(double[] ybuf, int yoff, double[] xbuf, int xoff, int idx)
DynamicAttachment
T y -= G xwhere y and x are vectors associated with master and slave components, respectively, and G is the constraint matrix for the attachment.
mulSubGT
in interface DynamicAttachment
ybuf
- buffer into which to store resultyoff
- offset into ybufxbuf
- buffer containing right hand side vectorxoff
- offset into xbufidx
- master component indexpublic void addBackRefs()
DynamicAttachment
addBackRefs
in interface DynamicAttachment
public void removeBackRefs()
DynamicAttachment
removeBackRefs
in interface DynamicAttachment