public class DynamicAttachmentWorker
extends java.lang.Object
Constructor and Description |
---|
DynamicAttachmentWorker() |
Modifier and Type | Method and Description |
---|---|
void |
addAttachmentJacobian(DynamicAttachment at,
SparseBlockMatrix S,
VectorNd f,
boolean[] reduced)
Reduces the system matrix to account for this attachment.
|
void |
addSolveBlocks(DynamicAttachment at,
SparseNumberedBlockMatrix S,
boolean[] reduced) |
static boolean |
containsLoop(DynamicAttachment a,
DynamicComponent slave,
java.util.HashMap<DynamicComponent,DynamicAttachment> map) |
static boolean |
containsLoops(java.util.List<DynamicAttachment> list) |
java.util.ArrayList<DynamicAttachment> |
createOrderedList(java.util.List<DynamicAttachment> list)
Orders a list of (possibly interdependent) attachments so that
state can be updated correctly by starting at the beginning of the list
and running through to the end.
|
int |
getSlaveSolveIndex(DynamicAttachment at) |
void |
reduceConstraints(DynamicAttachment at,
SparseBlockMatrix GT,
VectorNd dg,
boolean zeroReducedBlocks)
Reduces a sparse column matrix (such as the transpose of a constraint
matrix) to account for an attachment.
|
void |
reduceRowMatrix(DynamicAttachment at,
SparseBlockMatrix G)
Reduces a sparse row matrix (such as a constraint
matrix) to account for this attachment.
|
public int getSlaveSolveIndex(DynamicAttachment at)
public void reduceConstraints(DynamicAttachment at, SparseBlockMatrix GT, VectorNd dg, boolean zeroReducedBlocks)
GT = P GTwhere
T [ I -Gka ] P = [ ] [ 0 0 ]and Gka is the constraint matrix for this attachment.
at
- attachment engendering the reductionGT
- matrix to be reduceddg
- derivative information to be reducedzeroReducedBlocks
- if false
, does not zero the blocks
in GT
associated with the attachment. Although this is
not the correct behavior, it can be used in situations where it does not
interfere with the final solution and the block contents are used
by the attachment for other computations.public void reduceRowMatrix(DynamicAttachment at, SparseBlockMatrix G)
T G = G Pwhere
T [ I -Gka ] P = [ ] [ 0 0 ]and Gka is the constraint matrix for this attachment.
At present, this method requires the matrix G to be vertically linked.
public void addSolveBlocks(DynamicAttachment at, SparseNumberedBlockMatrix S, boolean[] reduced)
public void addAttachmentJacobian(DynamicAttachment at, SparseBlockMatrix S, VectorNd f, boolean[] reduced)
T M = P M Pwhere
T [ I -Gka ] P = [ ] [ 0 0 ]and Gka is the constraint matrix for this attachment.
public java.util.ArrayList<DynamicAttachment> createOrderedList(java.util.List<DynamicAttachment> list)
public static boolean containsLoops(java.util.List<DynamicAttachment> list)
public static boolean containsLoop(DynamicAttachment a, DynamicComponent slave, java.util.HashMap<DynamicComponent,DynamicAttachment> map)