PISM, A Parallel Ice Sheet Model
stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800
|
◆ apply_linearization_transpose()
Applies the transpose of the linearization of the forward map (i.e. the transpose of the reduced gradient \(DF\) described in the class-level documentation.) As described previously, \[ Df = J_{\rm State}^{-1} J_{\rm Design}. \] so \[ Df^t = J_{\rm Design}^t \; (J_{\rm State}^t)^{-1} . \] Applying the transpose of the linearization then involves the solution of a linear equation. The matrices \(J_{\rm State}\) and \(J_{\rm Design}\) both depend on the value of the design variable \(\zeta\) and the value of the corresponding state variable \(u=F(\zeta)\). These are established by first calling linearize_at.
Definition at line 580 of file IP_SSATaucForwardProblem.cc. References apply_jacobian_design_transpose(), pism::array::Array2D< T >::array(), assemble_jacobian_state(), pism::array::Array2D< T >::copy_from(), pism::fem::DirichletData_Vector::fix_residual_homogeneous(), pism::RuntimeError::formatted(), pism::stressbalance::SSAFEM::m_bc_mask, pism::stressbalance::SSAFEM::m_bc_values, pism::stressbalance::SSAFEM::m_dirichletScale, m_du_global, m_J_state, m_ksp, pism::Component::m_log, m_rebuild_J_state, pism::stressbalance::ShallowStressBalance::m_velocity, PISM_CHK, PISM_ERROR_LOCATION, pism::array::Array::scale(), pism::array::Array::stencil_width(), pism::array::Array::update_ghosts(), and pism::array::Array::vec(). Referenced by pism::inverse::IP_SSATaucTikhonovGNSolver::apply_GN(), pism::inverse::IP_SSATaucTikhonovGNSolver::assemble_GN_rhs(), and pism::inverse::IP_SSATaucTikhonovGNSolver::evaluate_objective_and_gradient(). |