Hello , Thanks for your time to see this question.
The given conditions are stiffness matrix,destination function and x from Ax=b,x is movement ,b is force,A is global stiffness matrix. J(x)=||x||norm-1 There is one equation: dJ(x,θ)/dθ=∂J(x,θ)/∂θ+∂J(x,θ)/∂x *∂x/∂θ=∂J(x,θ)/∂θ+∂J(x,θ)/∂x*[A^-1(θ))(-∂A(θ)/∂θ)x],because b has no relation with density. I don't know how to get [A^-1(θ))(-∂A(θ)/∂θ)x],A is matrix with nxn,if θ is mx1 vector,∂A(θ)/∂θ is nxnxm matrix. But I don't know how to calculate (A^-1(θ))(-∂A(θ)/∂θ),I can simply get the value of A^-1. I use cook_membrane.cc this file for dJ(x,θ)/dθ. I found the density was just included from the mu invoked from parameters.prm. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> public: Material_Compressible_Neo_Hook_One_Field(const double mu, const double nu) : kappa((2.0 * mu * (1.0 + nu)) / (3.0 * (1.0 - 2.0 * nu))), c_1(mu / 2.0) { Assert(kappa > 0, ExcInternalError()); } const double kappa; const double c_1; // Value of the volumetric free energy NumberType get_Psi_vol(const NumberType &det_F) const { return (kappa / 4.0) * (det_F*det_F - 1.0 - 2.0*std::log(det_F)); } NumberType get_dPsi_vol_dJ(const NumberType &det_F) const { return (kappa / 2.0) * (det_F - 1.0 / det_F); } get_d2Psi_vol_dJ2(const NumberType &det_F) const { return ( (kappa / 2.0) * (1.0 + 1.0 / (det_F * det_F))); } NumberType get_Psi_iso(const SymmetricTensor<2,dim,NumberType> &b_bar) const { return c_1 * (trace(b_bar) - dim); } SymmetricTensor<2,dim,NumberType> get_tau_bar(const SymmetricTensor<2,dim,NumberType> &b_bar) const { return 2.0 * c_1 * b_bar; } >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> assemble_system_one_cell(const typename DoFHandler<dim>::active_cell_iterator &cell, ScratchData_ASM &scratch, PerTaskData_ASM &data) { // Due to the C++ specialization rules, we need one more // level of indirection in order to define the assembly // routine for all different number. The next function call // is specialized for each NumberType, but to prevent having // to specialize the whole class along with it we have inlined // the definition of the other functions that are common to // all implementations. assemble_system_tangent_residual_one_cell(cell, scratch, data); assemble_neumann_contribution_one_cell(cell, scratch, data); } <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Unfortunately ,I did not find density vector in this file to calculate -∂A(θ)/∂θ. Could anyone provide any hint or suggestions? Thanks in advance! Best regards Lance -- The deal.II project is located at http://www.dealii.org/ For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en --- You received this message because you are subscribed to the Google Groups "deal.II User Group" group. To unsubscribe from this group and stop receiving emails from it, send an email to dealii+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/f67b2b60-c697-4235-bc57-d0db7890dfccn%40googlegroups.com.