Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorover0219 <over0219@umn.edu>2020-07-09 22:42:20 +0300
committerover0219 <over0219@umn.edu>2020-07-09 22:42:20 +0300
commit14a76718e5e0d16c87e45f27f20a31aebe1e19e6 (patch)
tree8e365dd4c354f774a092acbf01f5ba00f4e7d8ea /extern/softbody/src/admmpd_types.h
parentb650bdc5ecfca7357cbd4cc1f0f5b2279db91a9c (diff)
added goal positions
Diffstat (limited to 'extern/softbody/src/admmpd_types.h')
-rw-r--r--extern/softbody/src/admmpd_types.h14
1 files changed, 9 insertions, 5 deletions
diff --git a/extern/softbody/src/admmpd_types.h b/extern/softbody/src/admmpd_types.h
index 350cc926696..d951687f11c 100644
--- a/extern/softbody/src/admmpd_types.h
+++ b/extern/softbody/src/admmpd_types.h
@@ -66,7 +66,7 @@ struct SolverData {
Eigen::MatrixXd x; // vertices, n x 3
Eigen::MatrixXd v; // velocity, n x 3
// Set in compute_matrices:
- Eigen::MatrixXd x_start; // x at beginning of timestep, n x 3
+ Eigen::MatrixXd x_start; // x at t=0 (and goal if k>0), n x 3
Eigen::VectorXd m; // masses, n x 1
Eigen::MatrixXd z; // ADMM z variable
Eigen::MatrixXd u; // ADMM u aug lag with W inv
@@ -76,16 +76,20 @@ struct SolverData {
RowSparseMatrix<double> D; // reduction matrix
RowSparseMatrix<double> DtW2; // D'W^2
RowSparseMatrix<double> A; // M + D'W^2D
- RowSparseMatrix<double> C; // linearized constraints
+ double A_diag_max; // Max coeff of diag of A
+ RowSparseMatrix<double> C; // linearized constraints (cols = n x 3)
Eigen::VectorXd d; // constraints rhs
double spring_k; // constraint stiffness
+ RowSparseMatrix<double> PtP; // pin_k Pt P
+ Eigen::VectorXd Ptq; // pin_k Pt q
+ Eigen::VectorXd pin_sqrt_k; // per-vertex pin (goal) sqrt stiffness
Eigen::SimplicialLDLT<Eigen::SparseMatrix<double> > ldltA;
struct GlobalStepData { // Temporaries used in global step
RowSparseMatrix<double> A3; // (M + D'W^2D) n3 x n3
- RowSparseMatrix<double> CtC; // k * Ct C
- RowSparseMatrix<double> A3_plus_CtC;
+ RowSparseMatrix<double> CtC; // col_k * Ct C
+ RowSparseMatrix<double> A3_CtC_PtP;
Eigen::VectorXd Ctd; // k * Ct d
- Eigen::VectorXd b3_plus_Ctd; // M xbar + DtW2(z-u) + k Kt l
+ Eigen::VectorXd b3_Ctd_Ptx; // M xbar + DtW2(z-u) + col_k Ct d + pin_k Pt x_start
// Used by Conjugate-Gradients:
Eigen::VectorXd r; // residual
Eigen::VectorXd z; // auxilary