Quandary
Loading...
Searching...
No Matches
Classes | Macros | Functions
optimproblem.hpp File Reference
#include "math.h"
#include <assert.h>
#include <petsctao.h>
#include "defs.hpp"
#include "timestepper.hpp"
#include <iostream>
#include <algorithm>
#include "optimtarget.hpp"
Include dependency graph for optimproblem.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  OptimProblem
 Optimization problem solver for quantum optimal control. More...
 

Macros

#define TaoSetObjective   TaoSetObjectiveRoutine
 
#define TaoSetGradient(tao, NULL, TaoEvalGradient, this)   TaoSetGradientRoutine(tao, TaoEvalGradient,this)
 
#define TaoSetObjectiveAndGradient(tao, NULL, TaoEvalObjectiveAndGradient, this)   TaoSetObjectiveAndGradientRoutine(tao, TaoEvalObjectiveAndGradient,this)
 
#define TaoSetSolution(tao, xinit)   TaoSetInitialVector(tao, xinit)
 
#define TaoGetSolution(tao, params)   TaoGetSolutionVector(tao, params)
 
#define TaoMonitorSet   TaoSetMonitor
 

Functions

PetscErrorCode TaoMonitor (Tao tao, void *ptr)
 Monitors optimization progress during TAO optimization iterations.
 
PetscErrorCode TaoEvalObjective (Tao tao, Vec x, PetscReal *f, void *ptr)
 PETSc TAO interface routine for objective function evaluation.
 
PetscErrorCode TaoEvalGradient (Tao tao, Vec x, Vec G, void *ptr)
 PETSc TAO interface routine for gradient evaluation.
 
PetscErrorCode TaoEvalObjectiveAndGradient (Tao tao, Vec x, PetscReal *f, Vec G, void *ptr)
 PETSc TAO interface routine for combined objective and gradient evaluation.
 

Macro Definition Documentation

◆ TaoGetSolution

#define TaoGetSolution (   tao,
  params 
)    TaoGetSolutionVector(tao, params)

◆ TaoMonitorSet

#define TaoMonitorSet   TaoSetMonitor

◆ TaoSetGradient

#define TaoSetGradient (   tao,
  NULL,
  TaoEvalGradient,
  this 
)    TaoSetGradientRoutine(tao, TaoEvalGradient,this)

◆ TaoSetObjective

#define TaoSetObjective   TaoSetObjectiveRoutine

◆ TaoSetObjectiveAndGradient

#define TaoSetObjectiveAndGradient (   tao,
  NULL,
  TaoEvalObjectiveAndGradient,
  this 
)    TaoSetObjectiveAndGradientRoutine(tao, TaoEvalObjectiveAndGradient,this)

◆ TaoSetSolution

#define TaoSetSolution (   tao,
  xinit 
)    TaoSetInitialVector(tao, xinit)

Function Documentation

◆ TaoEvalGradient()

PetscErrorCode TaoEvalGradient ( Tao  tao,
Vec  x,
Vec  G,
void *  ptr 
)

PETSc TAO interface routine for gradient evaluation.

Parameters
taoTAO solver object
xDesign vector
GGradient vector
ptrPointer to user context (OptimProblem instance)
Returns
PetscErrorCode Error code

◆ TaoEvalObjective()

PetscErrorCode TaoEvalObjective ( Tao  tao,
Vec  x,
PetscReal *  f,
void *  ptr 
)

PETSc TAO interface routine for objective function evaluation.

Parameters
taoTAO solver object
xDesign vector
fPointer to store objective function value
ptrPointer to user context (OptimProblem instance)
Returns
PetscErrorCode Error code

◆ TaoEvalObjectiveAndGradient()

PetscErrorCode TaoEvalObjectiveAndGradient ( Tao  tao,
Vec  x,
PetscReal *  f,
Vec  G,
void *  ptr 
)

PETSc TAO interface routine for combined objective and gradient evaluation.

Parameters
taoTAO solver object
xDesign vector
fPointer to store objective function value
GGradient vector
ptrPointer to user context (OptimProblem instance)
Returns
PetscErrorCode Error code

◆ TaoMonitor()

PetscErrorCode TaoMonitor ( Tao  tao,
void *  ptr 
)

Monitors optimization progress during TAO optimization iterations.

This callback function is called at each iteration of TaoSolve() to track convergence and output progress information.

Parameters
taoTAO solver object
ptrPointer to user context (OptimProblem instance)
Returns
PetscErrorCode Error code