|
| | PetscTS (const Config &config, MasterEq *mastereq_, Output *output_, int ninit_local) |
| | Constructor for PetscTS.
|
| |
| | ~PetscTS () |
| |
| Vec | solveODE (int initid, int iinit_local, Vec rho_t0) override |
| | Overwrites the default time-stepping by calling PETSc's TSSolve.
|
| |
| void | solveAdjointODE (int iinit_local, Vec rho_t0_bar, double Jbar_leakage, double Jbar_weightedcost, double Jbar_dpdm, double Jbar_energy) override |
| | Overwrites the default adjoint time-stepping by calling PETSc's TSSolve on the adjoint system.
|
| |
| void | evolveFWD (const double, const double, Vec) override |
| | Evolves state forward by one time-step from tstart to tstop.
|
| |
| void | evolveBWD (const double, const double, const Vec, Vec, Vec, bool) override |
| | Evolves adjoint state backward by one time-step and updates reduced gradient.
|
| |
| double | getMinTimestepSize () const override |
| | Get the smallest timestep size chosen during adaptive timestepping.
|
| |
| | TimeStepper () |
| |
| | TimeStepper (const Config &config, MasterEq *mastereq_, Output *output_, int ninit_local) |
| | Constructor for time stepper.
|
| |
| virtual | ~TimeStepper () |
| |
| double | getLeakageIntegral () |
| |
| double | getWeightedCostIntegral () |
| |
| double | getEnergyIntegral () |
| |
| double | getDPDMIntegral () |
| |
| Vec | getReducedGradient () |
| |
| void | setWriteTrajectoryDataFiles (bool write) |
| |
| void | setOptimTarget (OptimTarget *optim_target_) |
| |
| Vec | getFinalState (size_t iinit_local) |
| | Retrieves the final state for a specific local initial condition.
|
| |
| 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.
|
| |
|
| static PetscErrorCode | RHSMatrixUpdate (TS ts, PetscReal t, Vec x, Mat A, Mat B, void *ptr) |
| | PETSc callback to update the RHS matrix for the forward system at time t.
|
| |
| static PetscErrorCode | dRHSdpMatrixUpdate (TS ts, PetscReal t, Vec x, Mat A, void *ptr) |
| | PETSc callback to update the matrix for the derivative of the RHS with respect to control parameters at time t.
|
| |
| static PetscErrorCode | computedRHSdp (Mat A, Vec x, Vec y) |
| | PETSc callback to compute the action of the derivative of the RHS with respect to parameters on a vector, used during adjoint solves.
|
| |
| static PetscErrorCode | IntegralCosts (TS ts, PetscReal t, Vec x, Vec F, void *ctx) |
| | PETSc callback to evaluate integral cost functions at time t for the current state x.
|
| |
| static PetscErrorCode | dIntegralCostdYUpdate (TS ts, PetscReal t, Vec x, Mat A, Mat B, void *ptr) |
| | PETSc callback to update the matrix for the derivative of integral cost functions with respect to the state at time t.
|
| |
| static PetscErrorCode | dIntegralCostdPUpdate (TS ts, PetscReal t, Vec x, Mat A, void *ptr) |
| | PETSc callback to update the matrix for the derivative of integral cost functions with respect to the parameters at time t.
|
| |
| static PetscErrorCode | monitorTrajectory (TS ts, PetscInt step, PetscReal time, Vec state, void *ctx) |
| | PETSc callback to monitor the trajectory during time-stepping and write data to output files.
|
| |
|
| TS | ts |
| | Backward-compatible alias to ts_pool[0].
|
| |
| std::vector< TS > | ts_pool |
| | One PETSc TS per initial condition.
|
| |
| std::vector< Vec > | q_pool |
| | One quadrature state vector per TS/initial condition.
|
| |
| Vec | redgrad_ts |
| | TS-internal gradient vector with PETSc communicator-compatible layout.
|
| |
| Mat | dRHSdp |
| | MatShell for applying derivative of the RHS to control parameters.
|
| |
| Mat | dIntegralCostdY |
| | Dense matrix for derivative of integral costs wrt state.
|
| |
| Mat | dIntegralCostdP |
| | Dense matrix for derivative of integral costs wrt parameters.
|
| |
| PetscReal | dRHSdp_time |
| | Cached time used by the RHSJacobianP MatShell callbacks.
|
| |
| double | adj_scale_leakage |
| | Per-solve scaling for leakage integral adjoint contribution.
|
| |
| double | adj_scale_weightedcost |
| | Per-solve scaling for weighted-cost integral adjoint contribution.
|
| |
| double | adj_scale_energy |
| | Per-solve scaling for energy integral adjoint contribution.
|
| |
| double | min_timestep_size |
| | Smallest timestep size chosen during adaptive timestepping.
|
| |
| 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< std::vector< Vec > > | trajectory_states |
| | Storage for primal states during forward evolution, one trajectory for each local initial condition..
|
| |
| std::vector< Vec > | final_states |
| | Storage for final states for each local initial condition. Always filled after solveODE.
|
| |
| 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.
|
| |
| int | ntime |
| | Number of time steps.
|
| |
| double | total_time |
| | Final evolution time.
|
| |
| double | dt |
| | Time step size.
|
| |
| bool | writeTrajectoryDataFiles |
| | Flag to determine whether or not trajectory data will be written to files during forward simulation */.
|
| |
| Vec | redgrad |
| | Reduced gradient vector for optimization.
|
| |
| OptimTarget * | optim_target |
| | Pointer to optimization target specification.
|
| |
| Output * | output |
| | Pointer to output handler.
|
| |
| MasterEq * | mastereq |
| | Pointer to master equation solver.
|
| |
Petsc's adaptive timestepper.