20
Sensitivity Capabilities in SUNDIALS 7 th U.S. National Congress on Computational Mechanics 28 July 2003 Radu Şerban Center for Applied Scientific Computing Lawrence Livermore National Laboratory

Sensitivity Analysis Sensi Usnccm 03

Embed Size (px)

DESCRIPTION

asda as as as das dsad

Citation preview

Page 1: Sensitivity Analysis Sensi Usnccm 03

Sensitivity Capabilities in SUNDIALS

7th U.S. National Congress on Computational Mechanics28 July 2003

Radu Şerban

Center for Applied Scientific ComputingLawrence Livermore National Laboratory

Page 2: Sensitivity Analysis Sensi Usnccm 03

RS - 2

Background

LLNL has a long history of R&D in ODE and DAE methods and software, and closely related areas, with emphasis on applications to PDEs.

DASPK

GEAR

IDADASSL

PVODECVODE

KINSOL

SensPVODE

ODEPACK

NKSOL

VODE VODPKCVODECVODES

KINSOLSKINSOL

IDAIDAS

SensKINSOL

SensIDA

FORTRAN ANSI C

SUN

DIA

LS

1974 1982 1983 1988 1990 1994 1996 1998 1999 2000 2001 today

Focus on recent years:Parallel solution of large-scale problems

Sensitivity analysis

Page 3: Sensitivity Analysis Sensi Usnccm 03

RS - 3

Background (cont.)

Starting in 1993, the push to solve large systems in parallel motivated work to write or rewrite solvers in C:

CVODE: a C rewrite of VODE/VODPK [Cohen and Hindmarsh, 1994]

PVODE: parallel extension of CVODE [Byrne and Hindmarsh, 1998]KINSOL: C rewrite of NKSOL [Taylor and Hindmarsh, 1998]

IDA: C rewrite of DASPK [Hindmarsh and Taylor, 1999]

Preliminary sensitivity variants:SensPVODE, SensIDA, SensKINSOL [Brown, Hindmarsh, Lee, 2000-2001]

After the reorganization into SUNDIALS, there is one ODE solver,CVODE, in two versions – serial and parallel (through the NVECTOR module)New sensitivity capable solvers in SUNDIALS:

CVODES [Hindmarsh and Serban, 2002]

IDAS [Serban, 2003] – in development

Page 4: Sensitivity Analysis Sensi Usnccm 03

RS - 4

Structure of SUNDIALS

BandLinearSolver

BandLinearSolver

PreconditionedGMRES

Linear Solver

PreconditionedGMRES

Linear Solver

GeneralPreconditioner

Modules

GeneralPreconditioner

Modules

VectorKernelsVectorKernels

DenseLinearSolver

DenseLinearSolver

User main routineUser problem-defining functionUser preconditioner function

User main routineUser problem-defining functionUser preconditioner function

CVODEODE

Integrator

CVODEODE

Integrator

IDADAE

Integrator

IDADAE

Integrator

KINSOLNonlinear

Solver

KINSOLNonlinear

Solver

Solvers

• x’ = f(t,x), x(t0) = x0 CVODE• F(t,x,x’) = 0, x(t0) = x0 IDA• F(x) = 0 KINSOL

Solvers

• x’ = f(t,x), x(t0) = x0 CVODE• F(t,x,x’) = 0, x(t0) = x0 IDA• F(x) = 0 KINSOL

Page 5: Sensitivity Analysis Sensi Usnccm 03

RS - 5

The SUNDIALS Basic SolversCVODE

Variable-order, variable-step BDF (stiff) or implicit Adams (nonstiff)

Nonlinear systems solved by Newton or functional iterationLinear systems solved by direct (dense or band) or SPGMR solvers

IDAVariable-order, variable-step BDF

Nonlinear system solved by Newton

Linear systems solved by direct or SPGMR solvers

KINSOLInexact Newton method

Krylov solver: SPGMR (Scaled Preconditioned GMRES)

PreconditionersBand preconditioner (CVODE)

Band-Block-Diagonal preconditioner (CVODE, IDA, KINSOL)User-defined (setup and solve user routines)

Page 6: Sensitivity Analysis Sensi Usnccm 03

RS - 6

Sensitivity Analysis

Sensitivity Analysis (SA) is the study of how the variation in the output of a model (numerical or otherwise) can be apportioned, qualitatively or quantitatively, to different sources of variation.Applications:

Model evaluation (most and/or least influential parameters)

Model reduction

Data assimilationUncertainty quantification

Optimization (parameter estimation, design optimization, optimal control, …)

Approaches:Forward sensitivity analysis

Adjoint sensitivity analysis

Page 7: Sensitivity Analysis Sensi Usnccm 03

RS - 7

Sensitivity Analysis Approaches

Parameter dependent system

Forward sensitivity Adjoint sensitivity

Computational cost: (1+Np)Nx Computational cost: (1+NG)Nx

increases with Np increases with NG

==)()0(

0),,,(

0 pxx

ptxxF &

ppi

pixixNi

i

i

xs

FsFsF,,1,

0)0(

0K

&&=

==++

pxgsg

pg

pxtg

+=dd

),,(

TTpxpp

T

xFdtFg

dtpxtg

pG

pxG

00**

0

|)()(

),,(

dd

),(

∫ −−∫

=

=

&λλ

==−=−′

TtxFxgFF

px

xx

at...

)(*

**

&

&

λλλ

Page 8: Sensitivity Analysis Sensi Usnccm 03

RS - 8

Forward Sensitivity AnalysisFor a parameter dependent system

find si=dx/dpi by simultaneously solving the original system with the Np

sensitivity systems obtained by differentiating the original system with respect to each parameter in turn:

Gradient of a derived function

Can obtain gradients with respect to p for any derived function Computational cost - (1+Np)Nx - increases with Np

==)()0(

0),,,(

0 pxx

ptxxF &

p

i

i Nipi

pixix

xs

FsFsF,,1,

0)0(

0K

&& =

==++

pxgsg

p

gpxtg +=→

d

d),,(

Page 9: Sensitivity Analysis Sensi Usnccm 03

RS - 9

Adjoint Sensitivity Analysis

index-0 and index-1 DAE

Hessenberg index-2 DAE

search for final conditions of the form

1

**

***

)(,,,

),(0

),,(

−∃∂∂=

∂∂=

∂∂=

−=−=++

==

CBx

fC

x

fB

x

fA

gB

gCA

pxf

pxxfx

d

a

a

d

d

d

x

dx

add

da

addd

a

d

λλλλ&&

Tt

d CT=

= ** )( ξλ

( ) 0* ==TtxF&λ ( ) ( ) ptx

T

pp xFdtFgdp

dG00

*

0

*

=+−= ∫ &λλ

( ) ( ) ( )Tt

apx

dpt

dT ap

adp

dp fCBgxdtffg

dp

dGa =

=−+++= ∫ 1

00

*

0

** )(λλλ( )Ttx

d CCBgT a =

−−= 1* )()(λ

ap

dp

dap

dp

daxxx

d

fxfCxpxf

CBggCBgB

Tt

aaa

**

1***

0),(

)(

:At

ξλξξλ

−=⇒−=⇒=−=⇒−=⇒−=

=−

TTpxpp

T

xFdtFg

dtpxtg

pG

pxG

00**

0

|)()(

),,(

dd

),(

∫ −−∫

=

=

&λλ

==−=−′

TtxFxgFF

px

xx

at...

)(*

**

&

&

λλλ

Page 10: Sensitivity Analysis Sensi Usnccm 03

RS - 10

Adjoint Sensitivity - Sensitivity of g(x,T,p)

Sensitivity of objective function

Adjoint system

( ) ( )Tt

px

tpx

T

pTtpp

TtdT

xFdxFdtFFg

dp

dG

dT

d

dp

dg

===

=

−−+−== ∫

)( *

0

*

0

** &

&

λµµλ

===−′

Tt

FF xx

at

0)(*

**

K&

µµµ

Impl

icit

OD

ES

emi-e

xplic

itin

dex-

1 D

AE

Hes

senb

erg

inde

x-2

DA

E

1,,

0),(

−∃∂∂=

∂∂=

=

Ax

FB

x

FA

xxF

&

&

1)(,,,

)(0

),(

−∃∂∂=

∂∂=

∂∂=

==

CBx

fC

x

fB

x

fA

xf

xxfx

d

a

a

d

d

d

da

addd&

1,,,,

),(0

),(

−∃∂∂=

∂∂=

∂∂=

∂∂=

==

Dx

fD

x

fC

x

fB

x

fA

xxf

xxfx

a

a

d

a

a

d

d

d

ada

addd&

==−′TgA

BA

x @

0)(**

**

µµµ

−=+=

−−=

− TgDCgDB

CA

ad xxd

ad

add

@)(0

*1***

**

**

µµµ

µµµ&

CCBBIP

TgCBdt

dCgCBCAgP

B

CA

aad xxxd

d

add

1

*1***

*1******

*

**

)(

@)()(

0

−−

−=

−−=

=

−−=

µ

µµµµ&

Page 11: Sensitivity Analysis Sensi Usnccm 03

RS - 11

Stability of the adjoint systemExplicit ODE: proof using Green’s function;

Semi-explicit index-1 and Hessenberg index-2 DAE: the EUODE of the adjoint system is the adjoint of the EUODE of the original system;

Example: Semi-explicit index-1 DAE

+=+=

ad

add

DxCx

BxAxx

0

&

+=−−=

ad

add

DB

CA

µµµµµ

**

**

0

&

ddd CxDBAxx 1)( −−=& ddd BDCA µµµ *1*** )( −+−=&

Axx =& µµ *A−=&

Page 12: Sensitivity Analysis Sensi Usnccm 03

RS - 12

Stability of the adjoint system (contd.)

Implicit ODE and index-1 DAE: use bounded transformationLemma (Campbell, Bichols, Terrel)Given the time dependent linear DAE system

and nonsingular time dependent differentiable matrices P(t) multiplying the equations of the DAE and Q(t) transforming the variables, the adjoint system of the transformed DAE is the transformed system of the adjoint DAE.TheoremFor general index-0 and index-1 DAE systems, if the original DAE system is stable then the augmented DAE system is stable.

)()()( tfxtBxtA =+&

=−−=−0*

**

λλλλ

x

xx

F

gF

&

&

Page 13: Sensitivity Analysis Sensi Usnccm 03

RS - 13

User main routineSpecification of problem parametersActivation of sensitivity computationUser problem-defining functionUser preconditioner function

User main routineSpecification of problem parametersActivation of sensitivity computationUser problem-defining functionUser preconditioner function

CVODESODE

Integrator

CVODESODE

Integrator

IDASDAE

Integrator

IDASDAE

Integrator

KINSOLSNonlinear

Solver

KINSOLSNonlinear

Solver

Options- sensitivity approach (simultaneous or staggered)- sensitivity residuals: analytical, FD(DQ), AD, CS- error control on sensitivity variables- user-defined tolerances for sensitivity variables

Options- sensitivity approach (simultaneous or staggered)- sensitivity residuals: analytical, FD(DQ), AD, CS- error control on sensitivity variables- user-defined tolerances for sensitivity variables

Forward Sensitivity Analysis in SUNDIALS

BandLinearSolver

BandLinearSolver

PreconditionedGMRES

Linear Solver

PreconditionedGMRES

Linear Solver

GeneralPreconditioner

Modules

GeneralPreconditioner

Modules

VectorKernelsVectorKernels

DenseLinearSolver

DenseLinearSolver

nvSpec = NV_SpecInit_Parallel(…);y0 = N_VNew(nvSpec);cvmem = CVodeCreate(BDF,NEWTON);flag = CVodeSet*(…);flag = CVodeMalloc(cvmem,rhs,t0,y0, …);flag = CVSpgmr(cvmem,…);y0S = N_VNewS(Ns,nvSpec);flag = CVodeSetSens*(…);flag = CVodeSensMalloc(cvmem,y0S,…);for(tout = …) {

flag = CVode(…,y,…);flag = CVodeGetSens(…,yS,…);

}NV_SpecFree_Parallel(…);CVodeFree(cvmem);

Page 14: Sensitivity Analysis Sensi Usnccm 03

RS - 14

Forward Sensitivity Analysis - Methods

For ODE/DAE implicit integratorsStaggered Direct MethodOn each time step, converge Newton iteration for state variables, then solve linear sensitivity system

Requires formation and storage of Jacobian matrices

Not matrix-free

Errors in finite-difference Jacobians lead to errors in sensitivities

Simultaneous Corrector MethodOn each time step, solve the nonlinear system simultaneously for solution and sensitivity variables

Block-diagonal approximation of the combined system Jacobian

Requires formation of sensitivity R.H.S. at every iteration

Staggered Corrector Method On each time step, converge Newton for state variables, then iterate to solve sensitivity system

With SPGMR, sensitivity systems solved (theoretically) in 1 iteration

Page 15: Sensitivity Analysis Sensi Usnccm 03

RS - 15

Adjoint Sensitivity Analysis in SUNDIALS

User main routineActivation of sensitivity computationUser problem-defining functionUser reverse functionUser preconditioner functionUser reverse preconditioner function

User main routineActivation of sensitivity computationUser problem-defining functionUser reverse functionUser preconditioner functionUser reverse preconditioner function

CVODESODE

Integrator

CVODESODE

Integrator

IDASDAE

Integrator

IDASDAE

Integrator

KINSOLSNonlinear

Solver

KINSOLSNonlinear

Solver

(Modified)VectorKernels

(Modified)VectorKernels

Implementation- check point approach; total cost is 2 forward solutions + 1 backward solution - integrate any system backwards in time- may require modifications to some user-defined vector kernels

Implementation- check point approach; total cost is 2 forward solutions + 1 backward solution - integrate any system backwards in time- may require modifications to some user-defined vector kernels

BandLinearSolver

BandLinearSolver

PreconditionedGMRES

Linear Solver

PreconditionedGMRES

Linear Solver

GeneralPreconditioner

Modules

GeneralPreconditioner

Modules

DenseLinearSolver

DenseLinearSolver

Page 16: Sensitivity Analysis Sensi Usnccm 03

RS - 16

Adjoint Sensitivity – ImplementationSolution of the forward problem is needed in the backward integration phase need predictable and compact storage of solution values for the solution of the adjoint systemCheckpointing:

Cubic Hermite interpolation

Simulations are reproducible from each checkpointForce Jacobian evaluation at checkpoints to avoid storing it

Store solution and first derivative at all intermediate steps between two consecutive checkpoints

Computational cost: 2 forward and 1 backward integrations

t0 tf

ck0 ck1 ck2 …

Page 17: Sensitivity Analysis Sensi Usnccm 03

RS - 17

Applications

Parallel CVODE is being used in a 3D tokamak turbulence model in LLNL’s Magnetic Fusion Energy Division. A typical run has 7 unknowns on a 64x64x40 mesh, with up to 60 processors

KINSOL with a HYPRE multigrid preconditioner is being applied within CASC to solve a nonlinear Richards equation for pressure in porous media flows. Fully scalable performance was obtained on up to 225 processors on ASCI Blue.

CVODE, KINSOL, IDA, with MG preconditioner, are being used to solve 3D neutral particle transport problems in CASC. Scalable performance obtained on up to 5800 processors on ASCI Red.

SensPVODE, SensKINSOL, SensIDA have been used to determine solution sensitivities in neutral particle transport applications.

IDA and SensIDA are being used in a cloud and aerosol microphysics model at LLNL to study cloud formation processes.

CVODES is used for sensitivity analysis of chemically reacting flows (SciDAC collaboration with Sandia Livermore)

CVODES is used for sensitivity analysis of radiation transport (diffusion approximation)

Page 18: Sensitivity Analysis Sensi Usnccm 03

RS - 18

Current and Future Work

Software developmentIDAS (forward and adjoint sensitivity variant of IDA)Automatic generation of sensitivity systems

Complex-step tools for forward sensitivity and/or Jacobian dataIncorporation of AD tools as they become available (forward/reverse)

Solvers as CCA componentsClassic ccaffeine components for CVODE and CVODES exist

BABEL-ize SUNDIALS solvers

Adjoint sensitivity for parameter identificationPOD-based reduced model to replace checkpointingTreatment of discontinuous adjoint variables (observations at discrete times)

Sensitivity-based error analysis Error estimates for reduced modelsGlobal error control for ODE/DAE systems using adjoint sensitivities

Multiple right hand side linear solversEfficiency improvements in forward sensitivity analysis

Page 19: Sensitivity Analysis Sensi Usnccm 03

RS - 19

Availability

Open source BSD licensewww.llnl.gov/CASC/sundials

Publicationswww.llnl.gov/CASC/nsde

The SUNDIALS TeamPeter Brown

Keith GrantAlan Hindmarsh

Steven Lee

Radu SerbanDan Shumaker

Carol Woodward

Past contributors Scott Cohen and Allan Taylor

Page 20: Sensitivity Analysis Sensi Usnccm 03

RS - 20

UCRL-PRES-

AUSPICES

This document was prepared as an account of work sponsored by an agency of the United States Government. Neither the United States Government nor the University of California nor any of their employees, makes any warranty, express or implied, or assumes any legal liability or responsibility for the accuracy, completeness, or usefulness of any information, apparatus, product, or process disclosed, or represents that its use would not infringe privately owned rights. Reference herein to any specific commercial product, process, or service by trade name, trademark, manufacturer, or otherwise, does not necessarily constitute or imply its endorsement, recommendation, or favoring by the United States Government or the University of California. The views and opinions of authors expressed herein do not necessarily state or reflect those of the United States Government or the University of California, and shall not be used for advertising or product endorsement purposes.

This work was performed under the auspices of the U.S. Department of Energy by the University of California, Lawrence Livermore National Laboratory under Contract No. W-7405-Eng-48.