+ All Categories
Home > Documents > Continuation and Bifurcation Methods Using LOCA

Continuation and Bifurcation Methods Using LOCA

Date post: 05-Jan-2016
Category:
Upload: nhung
View: 26 times
Download: 1 times
Share this document with a friend
Description:
Continuation and Bifurcation Methods Using LOCA. Eric Phipps Andy Salinger, Roger Pawlowski 9233 – Computational Sciences Trilinos User Group Meeting October 16, 2003. - PowerPoint PPT Presentation
21
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy’s National Nuclear Security Administration under contract DE-AC04-94AL85000. Eric Phipps Andy Salinger, Roger Pawlowski 9233 – Computational Sciences Trilinos User Group Meeting October 16, 2003 Continuation and Bifurcation Methods Using LOCA
Transcript
Page 1: Continuation and Bifurcation Methods  Using LOCA

Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company,for the United States Department of Energy’s National Nuclear Security Administration

under contract DE-AC04-94AL85000.

Eric Phipps

Andy Salinger, Roger Pawlowski9233 – Computational Sciences

Trilinos User Group Meeting

October 16, 2003

Continuation and Bifurcation Methods Using LOCA

Page 2: Continuation and Bifurcation Methods  Using LOCA

Why Do We Need Stability Analysis Algorithms for Large-Scale Applications?

Nonlinear systems exhibit instabilities, e.g.:

• Multiple steady states

• Ignition

• Symmetry Breaking

• Onset of Oscillations

• Phase Transitions

These phenomena must be understood in order to perform computational design and optimization.

Established stability/bifurcation analysis libraries exist:

• AUTO (Doedel)

• CONTENT (Kuznetsov)

• MATCONT (Govaerts)

We need algorithms, software, and experience to impact ASCI- and SciDAC-sized applications.

Stability/bifurcation analysis provides qualitative information about time evolution of nonlinear systems by computing families of steady-state solutions.

LOCA: Library of Continuation Algorithms

Page 3: Continuation and Bifurcation Methods  Using LOCA

History

• LOCA library grew out of continuation code in MPSalsa– Andy Salinger, John Shadid, Roger Pawlowski, Louis

Romero, Rich Lehoucq, Ed Wilkes, Beth Burroughs, Nawaf Bou-Rabee

• LOCA 1.0 released April 2002– Written in C with wrapper functions for linking to

application code – ~200 downloads

• Complete rewrite in C++ around NOX framework began September 2002, part of Trilinos release September 2003.

Page 4: Continuation and Bifurcation Methods  Using LOCA

LOCA: Library or Continuation Algorithms

LOCA provides:

• Parameter Continuation: Tracks a family of steady state solutions with parameter

• Linear Stability Analysis: Calculates leading eigenvalues via Anasazi

• Bifurcation Tracking: Locates neutral stability point (x,p) and tracks as a function of a second parameter

Tmax

Reaction Rate, r

r

Second parameter, h

1

1

3

Page 5: Continuation and Bifurcation Methods  Using LOCA

Pseudo Arc-length Continuation Solves for Solution and Parameter Simultaneously

Page 6: Continuation and Bifurcation Methods  Using LOCA

Codimension 1 Bifurcations

Turning Point

Pitchfork

Hopf

• Combustion• Buckling of an Arch

• Buckling of a Beam• Pattern formation• Cell differentiation

(morphogenesis)

• Vortex Shedding• Predator-Prey models• Puberty

Page 7: Continuation and Bifurcation Methods  Using LOCA

LOCA Designed for Easy Linking to Existing Newton-based Applications

Algorithmic choices for LOCA: • Must work with iterative (approximate) linear solvers on

distributed memory machines• Non-Invasive Implementation (e.g. matrix blind) • Should avoid or limit:

Requiring more derivatives Changing sparsity pattern of matrix Increasing memory requirements

LOCA targets existing codes that are:• Steady-State, Nonlinear• Newton’s Method• Large-Scale, Parallel

Page 8: Continuation and Bifurcation Methods  Using LOCA

Bordering Algorithms Meet these Requirements

Full Newton Algorithm

Bordering Algorithm

Pseudo Arc-length Continuation

Page 9: Continuation and Bifurcation Methods  Using LOCA

Bordering Algorithms Meet these Requirements

… but 4 solves of per Newton Iteration are used to drive singular!

Turning Point Bifurcation Full Newton Algorithm

Bordering Algorithm

Page 10: Continuation and Bifurcation Methods  Using LOCA

Abstraction of Continuation Process

Given initial guess , step size– Solve nonlinear equations to find 1st point on curve– while !stop

• Compute predictor• Compute predicted point• Solve continuation equations for using as initial guess• If successful

– Postprocess (e.g., compute eigenvalues, output data)– Increase step size

• Else– Decrease step size– Restore previous solution

• End if• If or or

– stop = true

– End while

LOCA Stepper

Predictor modules

Step size modules

NOX + continuation/bifurcation groups

Page 11: Continuation and Bifurcation Methods  Using LOCA

NOX implements various methods for solving

Code to evaluate is encapsulated in a Group.

NOX solver methods are generic, and implemented in terms of group/vector abstract interfaces:

NOX solvers will work with any group/vector that implements these interfaces.

NOX Nonlinear Solver (Kolda, Pawlowski, Hooper, Shadid)

Group Vector

computeF() dot()

computeJacobian() scale()

computeNewton() norm()

applyJacobianInverse() update()

Page 12: Continuation and Bifurcation Methods  Using LOCA

Idea: Given a vector to store and a group representing the equations , build an extended (“super”) group representing, e.g., pseudo arc-length continuation equations:

and a super vector to store the solution component and parametercomponent .

Super groups/vectors are generic:All abstract group/vector methods for super groups/vectors implemented in terms of methods of the underlying groups/vectors.

Super groups are NOX groups:Extended nonlinear equations solved by most NOX solvers

Super Vectors and Super Groups

Page 13: Continuation and Bifurcation Methods  Using LOCA

LOCA::Continuation::ArclengthGroup::applyJacobianInverse(const NOX::Abstract::Vector& input, NOX::Abstract::Vector& result) const {const LOCA::Continuation::ExtendedVector& con_input =

dynamic_cast<const LOCA::Continuation::ExtendedVector&>(input);LOCA::Continuation::ExtendedVector& con_result =

dynamic_cast<LOCA::Continuation::ExtendedVector&>(result);

const NOX::Abstract::Vector& input_x = con_input.getXVec();double input_p = con_input.getParam();

NOX::Abstract::Vector& result_x = con_result.getXVec();double& result_p = con_result.getParam();

NOX::Abstract::Vector* b = input_x.clone(NOX::ShapeCopy);

underlyingGroupPtr->applyJacobianInverse(input_x, result_x);underlyingGroupPtr->applyJacobianInverse(*dfdpVecPtr, *b);

result_p = (predictorVecPtr->getXVec().dot(result_x) – input_p) / (predictorVecPtr->getXVec().dot(*b) – predictorVecPtr->getParam());

result_x.update(-result_p, *b, 1.0);

delete b; }

Arc-length Group applyJacobianInverse()

Page 14: Continuation and Bifurcation Methods  Using LOCA

Continuation Groups

LOCA::Continuation::ExtendedGroup

LOCA::Continuation::NaturalGroup LOCA::Continuation::ArclengthGroup

LOCA::Continuation::AbstractGroup

• setParam()• getParam()• operator = ()• computeDfDp()• computeEigenvalues()• printSolution()

Mandatory

Default implementation available

Optional

NOX::Abstract::Group

NOX::Abstract::Group

Concrete group

Page 15: Continuation and Bifurcation Methods  Using LOCA

Turning Point, Pitchfork Groups

LOCA::Continuation::AbstractGroup

LOCA::Bifurcation::TPBord::ExtendedGroup

LOCA::Bifurcation::TPBord::AbstractGroup• computeDJnDp()• computeDJnDxa()• applySingularJacobianInverse()

NOX::Abstract::Group

NOX::Abstract::Group

Concrete group

LOCA::Bifurcation::PitchforkBord::ExtendedGroup

LOCA::Continuation::AbstractGroup

Page 16: Continuation and Bifurcation Methods  Using LOCA

Hopf Groups

LOCA::Continuation::AbstractGroup

LOCA::Bifurcation::HopfBord::ExtendedGroup

LOCA::Bifurcation::HopfBord::AbstractGroup• applyComplex()• applyComplexInverse()• computeDCeDp()• computeDCeDxa()

NOX::Abstract::Group NOX::Abstract::Group

Concrete group

LOCA::TimeDependent::AbstractGroup• computeMassMatrix()• applyMassMatrix()

LOCA::Continuation::AbstractGroup

LOCA::Bifurcation::TPBord::AbstractGroup

Page 17: Continuation and Bifurcation Methods  Using LOCA

• Interfacing NOX to the application code is 90% of the work! For• continuation• turning point tracking• pitchfork tracking

at very minimum must be able to additionally set/retrieve parameter values, save complete state of system by copying group.

• For Hopf tracking, must implement a complex solve:

• Can overload many additional methods if better techniques are available

• block solves• singular matrix solves• estimating derivatives:

Interfacing Application Codes to LOCA v2.0

Page 18: Continuation and Bifurcation Methods  Using LOCA

LOCA’s Current Capabilities

• Single parameter continuation

– Natural

– Pseudo Arc-length

• Bifurcations

– Turning point

– Pitchfork

– Hopf

• Predictors

– Constant

– Tangent

– Secant

– Random

• Step size control

– Constant

– Adaptive

• Artificial Homotopy

• Generic interface to Anasazi

• Native support for

– LAPACK (all intefaces)

– Epetra (all except Hopf)

Page 19: Continuation and Bifurcation Methods  Using LOCA

Salinas Example: Bending a 1D Beam

• Example problem from Salinas test suite

• Original continuation run with 50 load steps

• NOX/LOCA interface written by Russell Hooper

• Variable step size algorithm reduced to 37 load steps

Page 20: Continuation and Bifurcation Methods  Using LOCA

3D Rayleigh-Benard Problem in 5x5x1 box

• MPSalsa• 208K unknowns• 16 Processors

Page 21: Continuation and Bifurcation Methods  Using LOCA

Where We’re Going From Here

• Improve robustness– Better step size control– Improved bifurcation tracking algorithms– Debugging

• Incorporate– Multi-vector support– Multi-parameter continuation (Henderson, IBM)– Constraint enforcement– Automatic differentiation

• Impact more ASCI codes– Structural mechanics


Recommended