|
| | CompositionalImplMidpoint (int order_, MasterEq *mastereq_, int ntime_, double total_time_, LinearSolverType linsolve_type_, int linsolve_maxiter_, Output *output_, bool storeFWD_) |
| | Constructor for compositional implicit midpoint scheme.
|
| |
| | ~CompositionalImplMidpoint () |
| |
| void | evolveFWD (const double tstart, const double tstop, Vec x) |
| | Evolves state forward using compositional implicit midpoint rule.
|
| |
| void | evolveBWD (const double tstart, const double tstop, const Vec x_stop, Vec x_adj, Vec grad, bool compute_gradient) |
| | Evolves adjoint backward using compositional implicit midpoint rule and accumulates gradient.
|
| |
| | ImplMidpoint (MasterEq *mastereq_, int ntime_, double total_time_, LinearSolverType linsolve_type_, int linsolve_maxiter_, Output *output_, bool storeFWD_) |
| | Constructor for implicit midpoint scheme.
|
| |
| | ~ImplMidpoint () |
| |
| int | NeumannSolve (Mat A, Vec b, Vec x, double alpha, bool transpose) |
| | Solves (I - alpha*A) * x = b using Neumann iterations.
|
| |
| | TimeStepper () |
| |
| | TimeStepper (MasterEq *mastereq_, int ntime_, double total_time_, Output *output_, bool storeFWD_) |
| | Constructor for time stepper.
|
| |
| virtual | ~TimeStepper () |
| |
| Vec | getState (size_t tindex) |
| | Retrieves stored state at a specific time index.
|
| |
| void | setEvalLeakage (bool flag) |
| |
| void | setEvalWeightedCost (bool flag, double width) |
| |
| void | setEvalDPDM (bool flag) |
| |
| void | setEvalEnergy (bool flag) |
| |
| double | getLeakageIntegral () |
| |
| double | getWeightedCostIntegral () |
| |
| double | getEnergyIntegral () |
| |
| double | getDPDMIntegral () |
| |
| Vec | solveODE (int initid, Vec rho_t0) |
| | Solves the ODE forward in time.
|
| |
| void | solveAdjointODE (Vec rho_t0_bar, Vec finalstate, double Jbar_leakage, double Jbar_weightedcost, double Jbar_dpdm, double Jbar_energy) |
| | Solves the adjoint ODE backward in time.
|
| |
| double | evalLeakage (const Vec x) |
| | Evaluates leakage into guard levels.
|
| |
| void | evalLeakage_diff (const Vec x, Vec xbar, double Jbar) |
| | Computes derivative of leakage term.
|
| |
| double | evalWeightedCost (double time, const Vec x) |
| | Evaluates the weighted cost function term.
|
| |
| void | evalWeightedCost_diff (double time, const Vec x, Vec xbar, double Jbar) |
| | Computes derivative of weighted cost function term.
|
| |
| double | evalDpDm (Vec x, Vec xm1, Vec xm2) |
| | Evaluates second-order derivative variation for the state.
|
| |
| void | evalDpDm_diff (int n, Vec xbar, double Jbar) |
| | Computes derivative of second-order derivative variation term.
|
| |
| double | evalEnergy (double time) |
| | Evaluates energy integral term.
|
| |
| void | evalEnergy_diff (double time, double Jbar, Vec redgrad) |
| | Computes derivative of energy integral.
|
| |
|
| std::vector< double > | gamma |
| | Coefficients for compositional step sizes.
|
| |
| std::vector< Vec > | x_stage |
| | Storage for primal states at intermediate stages.
|
| |
| Vec | aux |
| | Auxiliary vector.
|
| |
| int | order |
| | Order of the compositional method.
|
| |
| Vec | stage |
| |
| Vec | stage_adj |
| | Intermediate stage vectors for forward and adjoint.
|
| |
| Vec | rhs |
| |
| Vec | rhs_adj |
| | Right-hand side vectors for forward and adjoint.
|
| |
| KSP | ksp |
| | PETSc's linear solver context for GMRES.
|
| |
| PC | preconditioner |
| | Preconditioner for linear solver.
|
| |
| LinearSolverType | linsolve_type |
| | Linear solver type (GMRES or NEUMANN)
|
| |
| int | linsolve_maxiter |
| | Maximum number of linear solver iterations.
|
| |
| double | linsolve_abstol |
| | Absolute tolerance for linear solver.
|
| |
| double | linsolve_reltol |
| | Relative tolerance for linear solver.
|
| |
| int | linsolve_iterstaken_avg |
| | Average number of linear solver iterations.
|
| |
| double | linsolve_error_avg |
| | Average error of linear solver.
|
| |
| int | linsolve_counter |
| | Counter for linear solve calls.
|
| |
| Vec | tmp |
| |
| Vec | err |
| | Auxiliary vectors for Neumann iterations.
|
| |
| Vec | x |
| | Auxiliary vector for forward time stepping.
|
| |
| Vec | xadj |
| | Auxiliary vector needed for adjoint (backward) time stepping.
|
| |
| Vec | xprimal |
| | Auxiliary vector for backward time stepping.
|
| |
| std::vector< Vec > | store_states |
| | Storage for primal states during forward evolution.
|
| |
| std::vector< Vec > | dpdm_states |
| | Storage for states needed for second-order derivative penalty.
|
| |
| int | mpirank_world |
| | MPI rank in global communicator.
|
| |
| int | mpisize_petsc |
| | MPI size in Petsc communicator.
|
| |
| int | mpirank_petsc |
| | MPI rank in Petsc communicator.
|
| |
| PetscInt | localsize_u |
| | Size of local sub vector u or v in state x=[u,v].
|
| |
| PetscInt | ilow |
| | First index of the local sub vector u,v.
|
| |
| PetscInt | iupp |
| | Last index (+1) of the local sub vector u,v.
|
| |
| bool | eval_leakage |
| | Flag to compute leakage integral term.
|
| |
| bool | eval_energy |
| | Flag to compute energy integral term.
|
| |
| bool | eval_dpdm |
| | Flag to compute second-order derivative integral term.
|
| |
| bool | eval_weightedcost |
| | Flag to compute weighted cost integral term.
|
| |
| double | leakage_integral |
| | Sums the integral over leakage.
|
| |
| double | energy_integral |
| | Sums the energy term.
|
| |
| double | dpdm_integral |
| | Sums second-order derivative variation value.
|
| |
| double | weightedcost_integral |
| | Sums the integral over weighted cost function.
|
| |
| double | weightedcost_width |
| | Width parameter for weighted cost function.
|
| |
Compositional implicit midpoint rule for higher-order accuracy.
Extends the implicit midpoint rule to higher order by using multiple substeps with specific coefficients. Maintains symplectic properties while achieving better accuracy for larger time steps.