Actual source code: tron.h

  1: #pragma once

  3: #include <petsc/private/taoimpl.h>
  4: #include <petscis.h>

  6: typedef struct {
  7:   /* Parameters */
  8:   PetscReal pg_ftol;
  9:   PetscReal actred;
 10:   PetscReal f_new;

 12:   PetscReal eta1, eta2, eta3, eta4;
 13:   PetscReal sigma1, sigma2, sigma3;

 15:   PetscInt maxgpits;

 17:   /* Problem variables, vectors and index sets */
 18:   PetscReal stepsize;
 19:   PetscReal pgstepsize;

 21:   /* Problem statistics */

 23:   PetscInt  n;     /* Dimension of the Problem */
 24:   PetscReal delta; /* Trust region size */
 25:   PetscReal gnorm;
 26:   PetscReal f;

 28:   PetscInt total_gp_its;
 29:   PetscInt gp_iterates;

 31:   Vec X_New;
 32:   Vec G_New;
 33:   Vec Work;

 35:   /* Subvectors and submatrices */
 36:   Vec DXFree;
 37:   Vec R;
 38:   Vec rmask;
 39:   Vec diag;
 40:   Mat H_sub;
 41:   Mat Hpre_sub;

 43:   IS         Free_Local; /* Indices of local variables equal to lower bound */
 44:   VecScatter scatter;

 46:   PetscInt n_free; /* Number of free variables */
 47:   PetscInt n_free_last;

 49: } TAO_TRON;