@@ -12,6 +12,10 @@ void ChamberSphere::setup_dofs(DOFHandler& dofhandler) {
1212
1313void ChamberSphere::update_constant (SparseSystem& system,
1414 std::vector<double >& parameters) {
15+ const double gamma_eta = parameters[global_param_ids[ParamId::gamma_eta]];
16+ const double volume0 = parameters[global_param_ids[ParamId::volume0]];
17+ const double n = parameters[global_param_ids[ParamId::n]];
18+ system.E .coeffRef (global_eqn_ids[1 ], global_var_ids[6 ]) = 2 *gamma_eta/(n*volume0);
1519 system.E .coeffRef (global_eqn_ids[2 ], global_var_ids[5 ]) = 1 ;
1620 system.E .coeffRef (global_eqn_ids[3 ], global_var_ids[6 ]) = -1 ;
1721 system.F .coeffRef (global_eqn_ids[0 ], global_var_ids[2 ]) = -1 ;
@@ -36,19 +40,22 @@ void ChamberSphere::update_solution(
3640 const Eigen::Matrix<double , Eigen::Dynamic, 1 >& y,
3741 const Eigen::Matrix<double , Eigen::Dynamic, 1 >& dy) {
3842 const double prestress = parameters[global_param_ids[ParamId::prestress]];
39- const double gamma_W1_over_n = parameters[global_param_ids[ParamId::gamma_W1_over_n]];
43+ const double gamma_W1 = parameters[global_param_ids[ParamId::gamma_W1]];
44+ const double gamma_eta = parameters[global_param_ids[ParamId::gamma_eta]];
4045 const double volume0 = parameters[global_param_ids[ParamId::volume0]];
4146 const double gamma_sigma_max = parameters[global_param_ids[ParamId::gamma_sigma_max]];
4247 const double n = parameters[global_param_ids[ParamId::n]];
4348 const double volume = y[global_var_ids[6 ]];
49+ const double dvolume_dt = dy[global_var_ids[6 ]];
4450 const double stress = y[global_var_ids[4 ]];
4551 const double Pout = y[global_var_ids[2 ]];
4652 system.C .coeffRef (global_eqn_ids[0 ]) = -Pout*pow ((volume + volume0)/volume0, (2.0 /3.0 )/n) + Pout + stress*pow ((volume + volume0)/volume0, (1.0 /3.0 )/n) - stress;
47- system.C .coeffRef (global_eqn_ids[1 ]) = 4 *gamma_W1_over_n*n - 4 *gamma_W1_over_n*n *pow (volume/volume0 + 1 , -2 /n) + prestress;
53+ system.C .coeffRef (global_eqn_ids[1 ]) = - 2 *dvolume_dt*gamma_eta/(n*volume0) + ( 2.0 / 3.0 )*dvolume_dt*gamma_eta* pow (volume/volume0 + 1 , -( 5.0 / 3.0 )/n)* pow (volume/volume0 + 1 , - 1 + ( 7.0 / 3.0 )/n)/(n*volume0) + ( 4.0 / 3.0 )*dvolume_dt*gamma_eta* pow (volume/volume0 + 1 , -( 17.0 / 3.0 )/n)* pow (volume/volume0 + 1 , - 1 + ( 7.0 / 3.0 )/n)/(n*volume0) + 4 *gamma_W1 - 4 *gamma_W1 *pow (volume/volume0 + 1 , -2 /n) + prestress;
4854 system.dC_dy .coeffRef (global_eqn_ids[0 ], global_var_ids[2 ]) = 1 - pow ((volume + volume0)/volume0, (2.0 /3.0 )/n);
4955 system.dC_dy .coeffRef (global_eqn_ids[0 ], global_var_ids[4 ]) = pow ((volume + volume0)/volume0, (1.0 /3.0 )/n) - 1 ;
5056 system.dC_dy .coeffRef (global_eqn_ids[0 ], global_var_ids[6 ]) = (1.0 /3.0 )*pow ((volume + volume0)/volume0, (1.0 /3.0 )/n)*(-2 *Pout*pow ((volume + volume0)/volume0, (1.0 /3.0 )/n) + stress)/(n*(volume + volume0));
51- system.dC_dy .coeffRef (global_eqn_ids[1 ], global_var_ids[6 ]) = 8 *gamma_W1_over_n*pow ((volume + volume0)/volume0, -2 /n)/(volume + volume0);
57+ system.dC_dy .coeffRef (global_eqn_ids[1 ], global_var_ids[6 ]) = (2.0 /9.0 )*pow ((volume + volume0)/volume0, -(17.0 /3.0 )/n)*(dvolume_dt*gamma_eta*pow ((volume + volume0)/volume0, (19.0 /3.0 - n)/n)*(2 - 3 *n) - 2 *dvolume_dt*gamma_eta*pow ((volume + volume0)/volume0, (1.0 /3.0 )*(7 - 3 *n)/n)*(3 *n + 10 ) + 36 *gamma_W1*n*volume0*pow ((volume + volume0)/volume0, (11.0 /3.0 )/n))/(pow (n, 2 )*volume0*(volume + volume0));
58+ system.dC_dydot .coeffRef (global_eqn_ids[1 ], global_var_ids[6 ]) = (2.0 /3.0 )*gamma_eta*pow ((volume + volume0)/volume0, -(22.0 /3.0 )/n)*(-3 *pow ((volume + volume0)/volume0, (22.0 /3.0 )/n) + 2 *pow ((volume + volume0)/volume0, (4 - n)/n) + pow ((volume + volume0)/volume0, (8 - n)/n))/(n*volume0);
5259
5360 // active stress
5461 system.C .coeffRef (global_eqn_ids[2 ]) = -act_plus*gamma_sigma_max;
0 commit comments