SlideShare una empresa de Scribd logo
1 de 31
AD 2008
       The Fifth International Conference on Automatic Differentiation
                     August 11-15, 2008, Bonn, Germany


           Index Determination in DAEs using the
     Library indexdet and the ADOL-C Package
                   for Algorithmic Differentiation

                                                            Dagmar Monett
                                                              René Lamour
                                                         Andreas Griewank


DFG Research Center Matheon
Mathematics for key technologies
Motivation
    Some applications
            Circuit simulation (focus of original project)
            Electromechanical problems (dynamo, plate condenser)
            Multiple pendulum
            Robotic arm




                                                         Criteria for
                                                         index 3 or higher:
                                                              CV-loops
                                                              &
                                                              LI-cutsets



Index Determination in DAEs using indexdet and ADOL-C                         2
Background

                                       Project D7
                   Numerical simulation of integrated circuits
                         for future chip generations




          • MATHEON - Mathematics for key technologies: Modeling,
            simulation and optimization of real-world processes
          • MATHEON is a Research Centre funded by the DFG, Deutsche
            Forschung Gemeinschaft (German Research Foundation)




Index Determination in DAEs using indexdet and ADOL-C                  3
Background

    D7 history
          First funding period
               Circuit-device coupled simulations
               Determination of suitable discretizations
          Second funding period, first stage (Tischendorf)
               Incorporation of a system integrator
               Discretization of new semiconductor device models
               Inclusion of 2D models by applying the Scharfetter-Gummel approach

    Occurring challenges
          Determination of the tractability index                     treated in
          Computation of consistent initial values                  second stage


Index Determination in DAEs using indexdet and ADOL-C                                4
Index determination


    DAEs given by the general equation:

                       f ((d ( x(t ))' , x(t ))  0, t  I          z (t )  d ( x (t ))'

    “Random” path x (t ) yields linearized system with coefficients:

                                         f
                                  A(t )  ( z (t ), x (t )),
                                         z
                                           f
                                   B (t )  ( z (t ), x (t )),
                                           z
                                             d
                                   D(t )       ( x (t ))
                                             x

Index Determination in DAEs using indexdet and ADOL-C                                       5
Index determination

    Continuous matrix function sequence:


                                                                         ( if det( Gi 1 )  0
                                                                              return index = i + 1 )




                                                         [R.Lamour. Index Determination and Calculation of
                                                          Consistent Initial Values for DAEs. Computers and
                                                        Mathematics with Applications, 50:1125-1140, 2005]

      Originally: differentiation approximated by finite differences!!!

  Repeated Differentiations                     Taylor series arithmetic
                                                 +
                                                 Shift op. on original specification!!

Index Determination in DAEs using indexdet and ADOL-C                                                         6
Results

  “Algorithmic Differentiation” yields the matrices of polynomials
                                                                                                                                      A(t ), B (t ), D(t )
      No truncation errors

         Term        Q1,13 rel.err.
        (t - 1)0 0.0                      Quadratic complexity in degree
        (t - 1)1 5.000e-16                                                     Elapsed running time by the program varying the number of Taylor
                                                                                      coefficients (averages over 20 independent runs)
        (t -   1)2   2.000e-16
        (t - 1)3 1.478e-15                                               0,7

                                                                         0,6
        (t - 1)4 6.153e-15
                                            Elapsed running time (sec)
                                                                         0,5
         Term        Q2,13 rel.err.                                      0,4

        (t - 1)0 6.790e-14                                               0,3

        (t - 1)1 1.404e-13                                               0,2


        (t - 1)2 2.094e-13                                               0,1


        (t - 1)3 2.785e-13                                                0
                                                                               1   2    3   4   5   10    30   50   70    90   110 130 160 190 230 270 310

        (t - 1)4         –                                                                               Nr. of Taylor coefficients




Index Determination in DAEs using indexdet and ADOL-C                                                                                                        7
Use of Algorithmic Differentiation techniques
                problem dimensions,
                                                                                      ADOL-C
                t0 , x, d ( x, t ), f ( z , x, t )
                                                                                                        active and passive variables,
   User class                                               ‘asectra‘                                   initial Taylor coefficients of t
                                                       active section and                   tag 0
                   daeIndexDet.cpp                                                      forward mode
                                                       calculation of the
     Global                                               trajectory, x (t )
   parameters                                                                                           Taylor coefficients of independent (i.e., t)
                                                                                                        and dependent variables (i.e. x (t ) )
                E.g. print out parameters,
                degree of Taylor coefficients

                                                            ‘asecdyn‘                                   active and passive variables,
                                                       active section and                               initial Taylor coefficients of x (t ) and t
                                                       calculation of the                    tag 1
                                                       dynamic, d ( x (t ), t )          forward and
                                                        and its derivative              reverse modes
                                                         z (t )  d ( x(t ), t )
                                                       using shift operator
                                                                                                        Taylor coefficients of independent
                                                                                                        (i.e., t and x (t ) ) and dependent variables
                                                                                                        (i.e. d ( x (t ), t ) ) and adjoints

                                                                                                        active and passive variables,
                                                                                                        initial Taylor coefficients of d( x (t ), t ),
                                                            ‘asecdae‘                                    x (t ) and t
                                                       active section and                    tag 2
                                                                                         forward and
                                                       calculation of the
                                                                                        reverse modes
                                                       DAE, f ( z (t ), x (t ), t )

                                                                                                        Taylor coefficients of independent
                                                                                                        (i.e., d( x (t ), t ) and x (t )) and dependent
                                                                                                        variables (i.e. f ( z (t ), x (t ), t ) ) and adjoints

                                                      Construct
                                                      matrices
                                                     A, B, and D


Index Determination in DAEs using indexdet and ADOL-C                                                                                                            8
Workflow overview
       User class
                                                         ‘asecdyn‘
                                                          Calculate
                             ‘asectra‘                                                       ‘asecdae‘                         Construct                ‘hqrfcp‘
                                                      dynamic d ( x (t ), t )
   daeIndexDet.cpp           Calculate                                                       Calculate                         matrices              Householder QR
                                                      and its derivative
                          trajectory x (t )                                                DAE f ( z (t ), x (t ), t )        A, B, and D              of matrix A
                                                       z (t )  d ( x(t ), t )
                                                  using shift operator
                                                                                                                                                          rA
         Global
       parameters                                                                                                             Init. + AD                ‘hqrfcp‘
                                                                                                                                                     Householder QR
                                                          ADOL-C                                                                                       of matrix D

 Matrix sequence loop                                                                                                                                     rD
                                                                                                                              Not properly
                               Initial computations                                                                              stated                    rA  rD
                                                                                                                              leading term          YES
             Terminate
                                                                                                                                                          NO
            YES                                                                                                               YES
                                   Initialize matrices                                                                                         r0        ‘hqrfcp‘
                                                                      Compute                     Compute                NO
   2          dim  m                 and variables                                                                              rA  r0             Householder QR
                                                                     D =G0 * A                 V0, U01, G0
                                     i = 1, dim = r0                                                                                                of matrix G0=A*D

             NO

                                                            NO                                   NO                              NO        when i = 0,
               i++
                                       Qi2  Qi  0                        Qi * Qi1  0                      Gi * Qi  0
         Compute Pi, Wi, Qi                                                                                                                P0  D * D

                                                                                     YES                 YES                                              NO
                                                                  YES                                                          YES
                                                                                               Error




Index Determination in DAEs using indexdet and ADOL-C                                                                                                                   9
Index determination and AD


                             daeIndexDet:
              A program for the index determination in DAEs
         using the indexdet library and the ADOL-C package for
                        Automatic Differentiation


                                         indexdet.lib
                         adolc.lib
                                            matrixseq.h




                       EDynamo1.h         daeIndexDet.cpp   daeIndexDet.exe




Index Determination in DAEs using indexdet and ADOL-C                         10
Index determination and AD


                             daeIndexDet:
              A program for the index determination in DAEs
         using the indexdet library and the ADOL-C package for
                        Automatic Differentiation


                                         indexdet.lib
                         adolc.lib
                                            matrixseq.h




                       EDynamo1.h         daeIndexDet.cpp   daeIndexDet.exe




Index Determination in DAEs using indexdet and ADOL-C                         11
Index determination and AD


                             daeIndexDet:
              A program for the index determination in DAEs
         using the indexdet library and the ADOL-C package for
                        Automatic Differentiation


                                         indexdet.lib
                         adolc.lib
                                            matrixseq.h




                       EDynamo1.h         daeIndexDet.cpp   daeIndexDet.exe




Index Determination in DAEs using indexdet and ADOL-C                         12
EDynamo1.h

  #ifndef EDYNAMO1_H_
  #define EDYNAMO1_H_
  #include "IDExample.h"
  class EDynamo1 : public IDExample
  {
    public:
     EDynamo1(void) : IDExample(4, 5, 0.1, "EDynamo1-01")
     {}
     void tra(adouble t, adouble *ptra)
     {}
     void dyn(adouble *px, adouble t, adouble *pd)
     {}
     void dae(adouble *py, adouble *px,
              adouble t, adouble *pf)
     {}
  };
  #endif /*EDYNAMO1_H_*/


Index Determination in DAEs using indexdet and ADOL-C                13
EDynamo1.h

  #ifndef EDYNAMO1_H_
  #define EDYNAMO1_H_                 Class name
  #include "IDExample.h"
  class EDynamo1 : public IDExample
  {
    public:
     EDynamo1(void) : IDExample(4, 5, 0.1, "EDynamo1-01")
     {}
     void tra(adouble t, adouble *ptra)
     {}
     void dyn(adouble *px, adouble t, adouble *pd)
     {}
     void dae(adouble *py, adouble *px,
              adouble t, adouble *pf)
     {}
  };
  #endif /*EDYNAMO1_H_*/


Index Determination in DAEs using indexdet and ADOL-C                14
EDynamo1.h

  #ifndef EDYNAMO1_H_                   Nr. equations in dyn(...),
  #define EDYNAMO1_H_                   nr. equations in dae(...),
  #include "IDExample.h"                t0, and
  class EDynamo1 : public IDExample
                                        text used for printout
  {
    public:
     EDynamo1(void) : IDExample(4, 5, 0.1, "EDynamo1-01")
     {}
     void tra(adouble t, adouble *ptra)
     {}
     void dyn(adouble *px, adouble t, adouble *pd)
     {}
     void dae(adouble *py, adouble *px,
              adouble t, adouble *pf)
     {}
  };
  #endif /*EDYNAMO1_H_*/


Index Determination in DAEs using indexdet and ADOL-C                15
EDynamo1.h

  #ifndef EDYNAMO1_H_
  #define EDYNAMO1_H_                         Trajectory
  #include "IDExample.h"
  class EDynamo1 : public IDExample
  {
    public:
     EDynamo1(void) : IDExample(4, 5, 0.1, "EDynamo1-01")
     {}
     void tra(adouble t, adouble *ptra)
     {/*...*/}
     void dyn(adouble *px, adouble t, adouble *pd)
     {/*...*/}
     void dae(adouble *py, adouble *px,
               adouble t, adouble *pf)
     {/*...*/}
  };
  #endif /*EDYNAMO1_H_*/


Index Determination in DAEs using indexdet and ADOL-C                16
EDynamo1.h

  #ifndef EDYNAMO1_H_
  #define EDYNAMO1_H_                         Dynamic
  #include "IDExample.h"
  class EDynamo1 : public IDExample
  {
    public:
     EDynamo1(void) : IDExample(4, 5, 0.1, "EDynamo1-01")
     {}
     void tra(adouble t, adouble *ptra)
     {/*...*/}
     void dyn(adouble *px, adouble t, adouble *pd)
     {/*...*/}
     void dae(adouble *py, adouble *px,
               adouble t, adouble *pf)
     {/*...*/}
  };
  #endif /*EDYNAMO1_H_*/


Index Determination in DAEs using indexdet and ADOL-C                17
EDynamo1.h

  #ifndef EDYNAMO1_H_
  #define EDYNAMO1_H_                         DAE
  #include "IDExample.h"
  class EDynamo1 : public IDExample
  {
    public:
     EDynamo1(void) : IDExample(4, 5, 0.1, "EDynamo1-01")
     {}
     void tra(adouble t, adouble *ptra)
     {/*...*/}
     void dyn(adouble *px, adouble t, adouble *pd)
     {/*...*/}
     void dae(adouble *py, adouble *px,
               adouble t, adouble *pf)
     {/*...*/}
  };
  #endif /*EDYNAMO1_H_*/


Index Determination in DAEs using indexdet and ADOL-C                18
EDynamo1.h

  #ifndef EDYNAMO1_H_
  #define EDYNAMO1_H_
  #include "IDExample.h"
  class EDynamo1 : public IDExample
  {
    public:
     EDynamo1(void) : IDExample(4, 5, 0.1, "EDynamo1-01")
     {}
     void tra(adouble t, adouble *ptra)
     {/*...*/}
                  {
     void dyn(adouble *px, adouble t, adouble *pd)
     {/*...*/}      /*...*/
     void dae(adouble *py, dp - v;
                    pf[0] = adouble *px,
               adouble t, = dv - f( *pf)
                    pf[1]
                           adouble v, jL, t, k0, k, m, alpha );
                    pf[2] = C*de + G*e - jL;
     {/*...*/}      pf[3] = dfi - e;
  };                pf[4] = fi - fiL( v, t, k0, k, r );
  #endif /*EDYNAMO1_H_*/
                  }


Index Determination in DAEs using indexdet and ADOL-C                19
Index determination and AD


                             daeIndexDet:
              A program for the index determination in DAEs
         using the indexdet library and the ADOL-C package for
                        Automatic Differentiation


                                         indexdet.lib
                         adolc.lib
                                            matrixseq.h




                       EDynamo1.h         daeIndexDet.cpp   daeIndexDet.exe




Index Determination in DAEs using indexdet and ADOL-C                         20
Classes and supporting files
                                           38                         114

                                IDException.h           IDException.cpp


                                                110               965                     53                   517

                                        TPolyn.h         TPolyn.cpp                 ioutil.h            ioutil.cpp
               33
                                                            164                            3107
       defaults.h
                          adolc.lib                          Matrix.h               Matrix.cpp


                42                                 33               76                    2780

      IDOptions.h                           defs.h            linalg.h              linalg.cpp


                195     79                                               66                      3280

     IDOptions.cpp       IDExample.h                        matrixseq.h             matrixseq.cpp


                                  207                                         193

                         EDynamo1.h                       daeIndexDet.cpp


Index Determination in DAEs using indexdet and ADOL-C                                                                21
Example: Bike Dynamo

   (In cooperation with project MATHEON Project D13)


    Electromechanical problem

                                                           p   : position of the mass point

                                                           v   : velocity

                                                           e : voltage
                                                           : magnetic flow
                                                            jL : conductance
                                                        m, k , k0 , C , G   are known
                    L          R        C




Index Determination in DAEs using indexdet and ADOL-C                                         22
Example: Bike Dynamo
                                                                                 (Index 4)
                                              
                                              pv
                                                  ~
                                                f ( v, j L , t )  
                                              v
                                              0  p  z (t )
                                 
                                Ce  Ge  jL  0
                                        
                                        e  0
                                                L (v, t ).
    with
    ~                f      2
    f (v, jL , t )  mech     k0 jL sin(2kvt )
                       m    mk
        L (v, t )  k0 r cos(2kvt )
           f mech  gm tan( )
                                     E.g. t  0                 Singular point

     The new method correctly computes the index even at problem singularities!!!

Index Determination in DAEs using indexdet and ADOL-C                                    23
Example: Bipolar ring oscillator with inductor
   Circuit simulation                                                                       (Index 2)
                                                                    G (e1  e11 )  jC1  j B 3  j1, 3  0
                                                                   G (e2  e11 )  jC 2  j B 4  j2, 3  0
                                                                         jE 3  j E 4  i  j1,3  j2, 3  0
                                                                   G (e4  e11 )  jC 3  j B 5  j4, 6  0
                                                                   G (e5  e11 )  jC 4  j B 6  j5, 6  0
                                                                         jE 5  jE 6  i  j4, 6  j5, 6  0
                                                             v      G (e7  e11 )  jC 5  jB1  j7 ,9  0
    ja ,b     
             q (ea  eb )      q (v)  4 10 11 vB 1 
                                                            vB     G (e8  e11 )  jC 6  jB 2  j8,9  0
     jB  jBE  jBC
                                                                         jE1  j E 2  i  j7 ,9  j8,9  0
                    v BE                v BC
             IS      vT          IS      vT                                                    jv  3i  0
             (e            1)  (e            1)
                                r                                                           u10  v  0
     jC  jBE  (1   r ) jBC                                                             Lj 'L  e11  0
     L,  ,  r , v, vT , vB , G, I S , i are known     G (6e11  e1  e2  e4  e5  e7  e8 )  jL  0

Index Determination in DAEs using indexdet and ADOL-C                                                      24
Achievements


  Main achievements

   Exact differentiations without explicit specification of derivatives
    expressions
   High accurate results (e.g. checking eps-conditions: equal to 0 up
    to machine precision). Accurate calculation of the index /
    consistent initial values (for the linear case)
   New matrix-algebra operations to deal with AD (e.g.
    implementation of special matrix-matrix multiplications, QR
    decomposition of matrices of Taylor polynomials, etc.) with
    operator overloading in C++
   New program and library for the index determination and the
    consistent initialization


Index Determination in DAEs using indexdet and ADOL-C                      25
Software

      daeIndexDet: Program for the index determination in DAEs
      indexdet: Corresponding library
      Using Algorithmic Differentiation techniques (ADOL-C package for AD)
      http://www.mathematik.hu-berlin.de/~monett/indexdet/indexdet.html




Index Determination in DAEs using indexdet and ADOL-C                            26
Consistent initialization

        • Lots of variables are used from previous computations and structure
        • Classes and supporting files are already available


     Algorithm
                                 Taylor coefficients (ADOL-C) of
                                 x, d, f and matrixes A, B, D
                                       Index computation,
                                  projectors and other variables
                                      Calculate variables vi
                                     and conform solution x
                                             Calculate
                                          xi+1 = xi + λ zi
                                       Verify convergence



Index Determination in DAEs using indexdet and ADOL-C                               27
Further work


     1. Computation of consistent initial values
           Nonlinear case
     2. Sparse implementation
           Sparse LU-based implementation using Taylor arithmetic
     3. Structural analysis
           Exploration of extension of [Pantelides/Pryce] to computational graphs



     4. If 3. promising

                    Development and implementation of method




Index Determination in DAEs using indexdet and ADOL-C                                28
Topic

    DAE Example                f  x, h ( x, y )   0
                                            
                                                            Corresponding
                               g  y , h ( x, y )   0
                                                        computational graph
                                x , y , h, f , g 
                                                             x
                                                                            f
    Jacobian                                                 
                                                             x       h
                               f 
                                                           
                                                             y
                  ( f , g )  h   h           h                      g
                                                       y
                  ( x, y )  g   x
                                               y 
                                                    
                               
                               h 
     has rank        1

                                                       
                          Transformation to ODE for ( x, y ) impossible!
                           Structural Analysis à la Pantelides fails!!!

Index Determination in DAEs using indexdet and ADOL-C                              29
Plans for 2008/2009 and beyond

    Solution of introductory example based on graph

      Expanded system                             Maximal Degree of Variables
                      
             z  h ( x, y )  0                          x    y    z
                                                         1    1   0
                 f ( x, z )  0
                                                         0    –   0
                 g ( y, z )  0
                                                         –    0   0




Index Determination in DAEs using indexdet and ADOL-C                           30
Plans for 2008/2009 and beyond

    Solution of introductory example based on graph

      Expanded system                             Maximal Degree of Variables
                      
             z  h ( x, y )  0                          x    y    z
                                                         1    1   0
                 f ( x, z )  0
                                                         0    –   0
                 g ( y, z )  0
                                                         –    0   0

                                          Occurrence of derivatives determines
                                       structural index via maximal transversal

       Combinatorial subtasks:
        Identification of replicated subgraphs
        Maximal Weighted Matching on DAG
        Linear Assignment Problem on Matrix
Index Determination in DAEs using indexdet and ADOL-C                           31

Más contenido relacionado

La actualidad más candente

igarss11benedek.pdf
igarss11benedek.pdfigarss11benedek.pdf
igarss11benedek.pdf
grssieee
 
Condition Monitoring Of Unsteadily Operating Equipment
Condition Monitoring Of Unsteadily Operating EquipmentCondition Monitoring Of Unsteadily Operating Equipment
Condition Monitoring Of Unsteadily Operating Equipment
Jordan McBain
 
Computer Science and Information Science 3rd semester (2012-December) Questio...
Computer Science and Information Science 3rd semester (2012-December) Questio...Computer Science and Information Science 3rd semester (2012-December) Questio...
Computer Science and Information Science 3rd semester (2012-December) Questio...
B G S Institute of Technolgy
 
Ben Carterett — Advances in Information Retrieval Evaluation
Ben Carterett — Advances in Information Retrieval EvaluationBen Carterett — Advances in Information Retrieval Evaluation
Ben Carterett — Advances in Information Retrieval Evaluation
yaevents
 
Multi-Objective Evolutionary Algorithms
Multi-Objective Evolutionary AlgorithmsMulti-Objective Evolutionary Algorithms
Multi-Objective Evolutionary Algorithms
Song Gao
 

La actualidad más candente (18)

igarss11benedek.pdf
igarss11benedek.pdfigarss11benedek.pdf
igarss11benedek.pdf
 
Digital Signal Processing Lab Manual ECE students
Digital Signal Processing Lab Manual ECE studentsDigital Signal Processing Lab Manual ECE students
Digital Signal Processing Lab Manual ECE students
 
Condition Monitoring Of Unsteadily Operating Equipment
Condition Monitoring Of Unsteadily Operating EquipmentCondition Monitoring Of Unsteadily Operating Equipment
Condition Monitoring Of Unsteadily Operating Equipment
 
Dsp lab pdf
Dsp lab pdfDsp lab pdf
Dsp lab pdf
 
Java™ (OOP) - Chapter 2: "Elementary Programming"
Java™ (OOP) - Chapter 2: "Elementary Programming"Java™ (OOP) - Chapter 2: "Elementary Programming"
Java™ (OOP) - Chapter 2: "Elementary Programming"
 
Digital signal Processing all matlab code with Lab report
Digital signal Processing all matlab code with Lab report Digital signal Processing all matlab code with Lab report
Digital signal Processing all matlab code with Lab report
 
Computer Science and Information Science 3rd semester (2012-December) Questio...
Computer Science and Information Science 3rd semester (2012-December) Questio...Computer Science and Information Science 3rd semester (2012-December) Questio...
Computer Science and Information Science 3rd semester (2012-December) Questio...
 
DSP Lab Manual (10ECL57) - VTU Syllabus (KSSEM)
DSP Lab Manual (10ECL57) - VTU Syllabus (KSSEM)DSP Lab Manual (10ECL57) - VTU Syllabus (KSSEM)
DSP Lab Manual (10ECL57) - VTU Syllabus (KSSEM)
 
DSP Mat Lab
DSP Mat LabDSP Mat Lab
DSP Mat Lab
 
FPGA Based Design of High Performance Decimator using DALUT Algorithm
FPGA Based Design of High Performance Decimator using DALUT AlgorithmFPGA Based Design of High Performance Decimator using DALUT Algorithm
FPGA Based Design of High Performance Decimator using DALUT Algorithm
 
DFT and IDFT Matlab Code
DFT and IDFT Matlab CodeDFT and IDFT Matlab Code
DFT and IDFT Matlab Code
 
Digital signal and image processing FAQ
Digital signal and image processing FAQDigital signal and image processing FAQ
Digital signal and image processing FAQ
 
Ben Carterett — Advances in Information Retrieval Evaluation
Ben Carterett — Advances in Information Retrieval EvaluationBen Carterett — Advances in Information Retrieval Evaluation
Ben Carterett — Advances in Information Retrieval Evaluation
 
digital signal-processing-lab-manual
digital signal-processing-lab-manualdigital signal-processing-lab-manual
digital signal-processing-lab-manual
 
Multi-Objective Evolutionary Algorithms
Multi-Objective Evolutionary AlgorithmsMulti-Objective Evolutionary Algorithms
Multi-Objective Evolutionary Algorithms
 
Matlab programs
Matlab programsMatlab programs
Matlab programs
 
Future CMB Experiments
Future CMB ExperimentsFuture CMB Experiments
Future CMB Experiments
 
Dsp lab manual
Dsp lab manualDsp lab manual
Dsp lab manual
 

Destacado

Destacado (20)

Agile Project-Based Teaching and Learning
Agile Project-Based Teaching and LearningAgile Project-Based Teaching and Learning
Agile Project-Based Teaching and Learning
 
Research and Teaching with Remo: Student research projects and teaching for a...
Research and Teaching with Remo: Student research projects and teaching for a...Research and Teaching with Remo: Student research projects and teaching for a...
Research and Teaching with Remo: Student research projects and teaching for a...
 
Understanding the Cuban Blogosphere: Retrospective and Perspectives based on ...
Understanding the Cuban Blogosphere: Retrospective and Perspectives based on ...Understanding the Cuban Blogosphere: Retrospective and Perspectives based on ...
Understanding the Cuban Blogosphere: Retrospective and Perspectives based on ...
 
E-Learning Adoption in a Higher Education Setting: An Empirical Study
E-Learning Adoption in a Higher Education Setting: An Empirical StudyE-Learning Adoption in a Higher Education Setting: An Empirical Study
E-Learning Adoption in a Higher Education Setting: An Empirical Study
 
Experiences in Software Testing (lecture slides)
Experiences in Software Testing (lecture slides)Experiences in Software Testing (lecture slides)
Experiences in Software Testing (lecture slides)
 
Requirements Engineering Techniques for Eliciting Requirements (lecture slides)
Requirements Engineering Techniques for Eliciting Requirements (lecture slides)Requirements Engineering Techniques for Eliciting Requirements (lecture slides)
Requirements Engineering Techniques for Eliciting Requirements (lecture slides)
 
Project based learning
Project based learningProject based learning
Project based learning
 
Walking the path from the MOOC to my classroom: My collection of methods and ...
Walking the path from the MOOC to my classroom: My collection of methods and ...Walking the path from the MOOC to my classroom: My collection of methods and ...
Walking the path from the MOOC to my classroom: My collection of methods and ...
 
Using BDI-extended NetLogo Agents in Undergraduate CS Research and Teaching
Using BDI-extended NetLogo Agents in Undergraduate CS Research and TeachingUsing BDI-extended NetLogo Agents in Undergraduate CS Research and Teaching
Using BDI-extended NetLogo Agents in Undergraduate CS Research and Teaching
 
Agile or traditional Software Engineering?
Agile or traditional Software Engineering? Agile or traditional Software Engineering?
Agile or traditional Software Engineering?
 
Predicting Star Ratings based on Annotated Reviewss of Mobile Apps [Slides]
Predicting Star Ratings based on Annotated Reviewss of Mobile Apps [Slides]Predicting Star Ratings based on Annotated Reviewss of Mobile Apps [Slides]
Predicting Star Ratings based on Annotated Reviewss of Mobile Apps [Slides]
 
MATHEON Center Days: Index determination and structural analysis using Algori...
MATHEON Center Days: Index determination and structural analysis using Algori...MATHEON Center Days: Index determination and structural analysis using Algori...
MATHEON Center Days: Index determination and structural analysis using Algori...
 
Joint Software Engineering to support STEM Education: Experiences before, dur...
Joint Software Engineering to support STEM Education: Experiences before, dur...Joint Software Engineering to support STEM Education: Experiences before, dur...
Joint Software Engineering to support STEM Education: Experiences before, dur...
 
Simulating the Fractional Reserve Banking using Agent-based Modelling with Ne...
Simulating the Fractional Reserve Banking using Agent-based Modelling with Ne...Simulating the Fractional Reserve Banking using Agent-based Modelling with Ne...
Simulating the Fractional Reserve Banking using Agent-based Modelling with Ne...
 
Evolving Lesson Plans to Assist Educators: From Paper-Based to Adaptive Lesso...
Evolving Lesson Plans to Assist Educators: From Paper-Based to Adaptive Lesso...Evolving Lesson Plans to Assist Educators: From Paper-Based to Adaptive Lesso...
Evolving Lesson Plans to Assist Educators: From Paper-Based to Adaptive Lesso...
 
Teaching Students Collaborative Requirements Engineering. Case Study Red:Wire
Teaching Students Collaborative Requirements Engineering. Case Study Red:WireTeaching Students Collaborative Requirements Engineering. Case Study Red:Wire
Teaching Students Collaborative Requirements Engineering. Case Study Red:Wire
 
Software Requirements Elicitation Methods
Software Requirements Elicitation MethodsSoftware Requirements Elicitation Methods
Software Requirements Elicitation Methods
 
Agent-Based Configuration of (Metaheuristic) Algorithms - Doctoral dissertation
Agent-Based Configuration of (Metaheuristic) Algorithms - Doctoral dissertationAgent-Based Configuration of (Metaheuristic) Algorithms - Doctoral dissertation
Agent-Based Configuration of (Metaheuristic) Algorithms - Doctoral dissertation
 
Key Issues for Requirements Engineering (lecture slides)
Key Issues for Requirements Engineering (lecture slides)Key Issues for Requirements Engineering (lecture slides)
Key Issues for Requirements Engineering (lecture slides)
 
Software requirement elicitation
Software requirement elicitationSoftware requirement elicitation
Software requirement elicitation
 

Similar a Index Determination in DAEs using the Library indexdet and the ADOL-C Package for Algorithmic Differentiation

Optimum tuning of pid controller for a permanent magnet brushless dc motor
Optimum tuning of pid controller for a permanent magnet brushless dc motorOptimum tuning of pid controller for a permanent magnet brushless dc motor
Optimum tuning of pid controller for a permanent magnet brushless dc motor
IAEME Publication
 
Optimum tuning of pid controller for a permanent magnet brushless dc motor
Optimum tuning of pid controller for a permanent magnet brushless dc motorOptimum tuning of pid controller for a permanent magnet brushless dc motor
Optimum tuning of pid controller for a permanent magnet brushless dc motor
IAEME Publication
 
The performance of turbo codes for wireless communication systems
The performance of turbo codes for wireless communication systemsThe performance of turbo codes for wireless communication systems
The performance of turbo codes for wireless communication systems
chakravarthy Gopi
 
Design of a novel controller to increase the frequency response of an aerospace
Design of a novel controller to increase the frequency response of an aerospaceDesign of a novel controller to increase the frequency response of an aerospace
Design of a novel controller to increase the frequency response of an aerospace
IAEME Publication
 
Passive network-redesign-ntua
Passive network-redesign-ntuaPassive network-redesign-ntua
Passive network-redesign-ntua
IEEE NTUA SB
 

Similar a Index Determination in DAEs using the Library indexdet and the ADOL-C Package for Algorithmic Differentiation (20)

Essentials of jitter part 3 webinar slides
Essentials of jitter part 3 webinar slidesEssentials of jitter part 3 webinar slides
Essentials of jitter part 3 webinar slides
 
Mm chap08 -_lossy_compression_algorithms
Mm chap08 -_lossy_compression_algorithmsMm chap08 -_lossy_compression_algorithms
Mm chap08 -_lossy_compression_algorithms
 
Error Control coding
Error Control codingError Control coding
Error Control coding
 
Optimum tuning of pid controller for a permanent magnet brushless dc motor
Optimum tuning of pid controller for a permanent magnet brushless dc motorOptimum tuning of pid controller for a permanent magnet brushless dc motor
Optimum tuning of pid controller for a permanent magnet brushless dc motor
 
Optimum tuning of pid controller for a permanent magnet brushless dc motor
Optimum tuning of pid controller for a permanent magnet brushless dc motorOptimum tuning of pid controller for a permanent magnet brushless dc motor
Optimum tuning of pid controller for a permanent magnet brushless dc motor
 
Modified approximate 8-point multiplier less DCT like transform
Modified approximate 8-point multiplier less DCT like transformModified approximate 8-point multiplier less DCT like transform
Modified approximate 8-point multiplier less DCT like transform
 
from_data_to_differential_equations.ppt
from_data_to_differential_equations.pptfrom_data_to_differential_equations.ppt
from_data_to_differential_equations.ppt
 
R Language Introduction
R Language IntroductionR Language Introduction
R Language Introduction
 
reliability workshop
reliability workshopreliability workshop
reliability workshop
 
MCQMC_talk_Chiheb_Ben_hammouda.pdf
MCQMC_talk_Chiheb_Ben_hammouda.pdfMCQMC_talk_Chiheb_Ben_hammouda.pdf
MCQMC_talk_Chiheb_Ben_hammouda.pdf
 
Applications Of One Type Of Euler-Lagrange Fractional Differential Equation
Applications Of One Type Of Euler-Lagrange Fractional Differential EquationApplications Of One Type Of Euler-Lagrange Fractional Differential Equation
Applications Of One Type Of Euler-Lagrange Fractional Differential Equation
 
Approximate Bayesian Computation on GPUs
Approximate Bayesian Computation on GPUsApproximate Bayesian Computation on GPUs
Approximate Bayesian Computation on GPUs
 
The performance of turbo codes for wireless communication systems
The performance of turbo codes for wireless communication systemsThe performance of turbo codes for wireless communication systems
The performance of turbo codes for wireless communication systems
 
2019 GDRR: Blockchain Data Analytics - Dissecting Blockchain Price Analytics...
2019 GDRR: Blockchain Data Analytics  - Dissecting Blockchain Price Analytics...2019 GDRR: Blockchain Data Analytics  - Dissecting Blockchain Price Analytics...
2019 GDRR: Blockchain Data Analytics - Dissecting Blockchain Price Analytics...
 
Design of a novel controller to increase the frequency response of an aerospace
Design of a novel controller to increase the frequency response of an aerospaceDesign of a novel controller to increase the frequency response of an aerospace
Design of a novel controller to increase the frequency response of an aerospace
 
Theoretical and Practical Bounds on the Initial Value of Skew-Compensated Cl...
Theoretical and Practical Bounds on the Initial Value of  Skew-Compensated Cl...Theoretical and Practical Bounds on the Initial Value of  Skew-Compensated Cl...
Theoretical and Practical Bounds on the Initial Value of Skew-Compensated Cl...
 
ICCF_2022_talk.pdf
ICCF_2022_talk.pdfICCF_2022_talk.pdf
ICCF_2022_talk.pdf
 
ictir2016
ictir2016ictir2016
ictir2016
 
Phd Defense 2007
Phd Defense 2007Phd Defense 2007
Phd Defense 2007
 
Passive network-redesign-ntua
Passive network-redesign-ntuaPassive network-redesign-ntua
Passive network-redesign-ntua
 

Más de Dagmar Monett

Más de Dagmar Monett (17)

Narratives that speak AI lingua? AI vocabulary in listed companies' annual re...
Narratives that speak AI lingua? AI vocabulary in listed companies' annual re...Narratives that speak AI lingua? AI vocabulary in listed companies' annual re...
Narratives that speak AI lingua? AI vocabulary in listed companies' annual re...
 
Game-based Learning as a Suitable Approach for Teaching Digital Ethical Think...
Game-based Learning as a Suitable Approach for Teaching Digital Ethical Think...Game-based Learning as a Suitable Approach for Teaching Digital Ethical Think...
Game-based Learning as a Suitable Approach for Teaching Digital Ethical Think...
 
University-Industry Collaboration's Next Level: A Comparative Study as Basis ...
University-Industry Collaboration's Next Level: A Comparative Study as Basis ...University-Industry Collaboration's Next Level: A Comparative Study as Basis ...
University-Industry Collaboration's Next Level: A Comparative Study as Basis ...
 
The Changing Landscape of Digital Technologies for Learning
The Changing Landscape of Digital Technologies for Learning The Changing Landscape of Digital Technologies for Learning
The Changing Landscape of Digital Technologies for Learning
 
Will Robots Take all the Jobs? Not yet.
Will Robots Take all the Jobs? Not yet.Will Robots Take all the Jobs? Not yet.
Will Robots Take all the Jobs? Not yet.
 
Coming to terms with intelligence in machines
Coming to terms with intelligence in machinesComing to terms with intelligence in machines
Coming to terms with intelligence in machines
 
The Intelligence Corpus, an Annotated Corpus of Definitions of Intelligence: ...
The Intelligence Corpus, an Annotated Corpus of Definitions of Intelligence: ...The Intelligence Corpus, an Annotated Corpus of Definitions of Intelligence: ...
The Intelligence Corpus, an Annotated Corpus of Definitions of Intelligence: ...
 
Artificial Intelligence: The Promise, the Myth, and a Dose of Reality
Artificial Intelligence: The Promise, the Myth, and a Dose of RealityArtificial Intelligence: The Promise, the Myth, and a Dose of Reality
Artificial Intelligence: The Promise, the Myth, and a Dose of Reality
 
Intelligence, the elusive concept and general capability still not found in m...
Intelligence, the elusive concept and general capability still not found in m...Intelligence, the elusive concept and general capability still not found in m...
Intelligence, the elusive concept and general capability still not found in m...
 
The I in AI (or why there is still none)
The I in AI (or why there is still none)The I in AI (or why there is still none)
The I in AI (or why there is still none)
 
Erfahrungen aus Projektbasiertes Lernen im Informatik Studium - The Missing p...
Erfahrungen aus Projektbasiertes Lernen im Informatik Studium - The Missing p...Erfahrungen aus Projektbasiertes Lernen im Informatik Studium - The Missing p...
Erfahrungen aus Projektbasiertes Lernen im Informatik Studium - The Missing p...
 
Methods for Validating and Testing Software Requirements (lecture slides)
Methods for Validating and Testing Software Requirements (lecture slides)Methods for Validating and Testing Software Requirements (lecture slides)
Methods for Validating and Testing Software Requirements (lecture slides)
 
Modelling Software Requirements: Important diagrams and templates (lecture sl...
Modelling Software Requirements: Important diagrams and templates (lecture sl...Modelling Software Requirements: Important diagrams and templates (lecture sl...
Modelling Software Requirements: Important diagrams and templates (lecture sl...
 
Requirements Engineering Methods for Documenting Requirements (lecture slides)
Requirements Engineering Methods for Documenting Requirements (lecture slides)Requirements Engineering Methods for Documenting Requirements (lecture slides)
Requirements Engineering Methods for Documenting Requirements (lecture slides)
 
A Structured Approach to Requirements Analysis (lecture slides)
A Structured Approach to Requirements Analysis (lecture slides)A Structured Approach to Requirements Analysis (lecture slides)
A Structured Approach to Requirements Analysis (lecture slides)
 
Genetic Algorithms and Ant Colony Optimisation (lecture slides)
Genetic Algorithms and Ant Colony Optimisation (lecture slides)Genetic Algorithms and Ant Colony Optimisation (lecture slides)
Genetic Algorithms and Ant Colony Optimisation (lecture slides)
 
Introduction to Agents and Multi-agent Systems (lecture slides)
Introduction to Agents and Multi-agent Systems (lecture slides)Introduction to Agents and Multi-agent Systems (lecture slides)
Introduction to Agents and Multi-agent Systems (lecture slides)
 

Último

The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
heathfieldcps1
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
kauryashika82
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
QucHHunhnh
 

Último (20)

Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docx
 
Asian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptxAsian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptx
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Energy Resources. ( B. Pharmacy, 1st Year, Sem-II) Natural Resources
Energy Resources. ( B. Pharmacy, 1st Year, Sem-II) Natural ResourcesEnergy Resources. ( B. Pharmacy, 1st Year, Sem-II) Natural Resources
Energy Resources. ( B. Pharmacy, 1st Year, Sem-II) Natural Resources
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
Role Of Transgenic Animal In Target Validation-1.pptx
Role Of Transgenic Animal In Target Validation-1.pptxRole Of Transgenic Animal In Target Validation-1.pptx
Role Of Transgenic Animal In Target Validation-1.pptx
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 

Index Determination in DAEs using the Library indexdet and the ADOL-C Package for Algorithmic Differentiation

  • 1. AD 2008 The Fifth International Conference on Automatic Differentiation August 11-15, 2008, Bonn, Germany Index Determination in DAEs using the Library indexdet and the ADOL-C Package for Algorithmic Differentiation Dagmar Monett René Lamour Andreas Griewank DFG Research Center Matheon Mathematics for key technologies
  • 2. Motivation Some applications  Circuit simulation (focus of original project)  Electromechanical problems (dynamo, plate condenser)  Multiple pendulum  Robotic arm Criteria for index 3 or higher: CV-loops & LI-cutsets Index Determination in DAEs using indexdet and ADOL-C 2
  • 3. Background Project D7 Numerical simulation of integrated circuits for future chip generations • MATHEON - Mathematics for key technologies: Modeling, simulation and optimization of real-world processes • MATHEON is a Research Centre funded by the DFG, Deutsche Forschung Gemeinschaft (German Research Foundation) Index Determination in DAEs using indexdet and ADOL-C 3
  • 4. Background D7 history  First funding period  Circuit-device coupled simulations  Determination of suitable discretizations  Second funding period, first stage (Tischendorf)  Incorporation of a system integrator  Discretization of new semiconductor device models  Inclusion of 2D models by applying the Scharfetter-Gummel approach Occurring challenges  Determination of the tractability index treated in  Computation of consistent initial values second stage Index Determination in DAEs using indexdet and ADOL-C 4
  • 5. Index determination DAEs given by the general equation: f ((d ( x(t ))' , x(t ))  0, t  I z (t )  d ( x (t ))' “Random” path x (t ) yields linearized system with coefficients: f A(t )  ( z (t ), x (t )), z f B (t )  ( z (t ), x (t )), z d D(t )  ( x (t )) x Index Determination in DAEs using indexdet and ADOL-C 5
  • 6. Index determination Continuous matrix function sequence: ( if det( Gi 1 )  0 return index = i + 1 ) [R.Lamour. Index Determination and Calculation of Consistent Initial Values for DAEs. Computers and Mathematics with Applications, 50:1125-1140, 2005] Originally: differentiation approximated by finite differences!!! Repeated Differentiations  Taylor series arithmetic + Shift op. on original specification!! Index Determination in DAEs using indexdet and ADOL-C 6
  • 7. Results “Algorithmic Differentiation” yields the matrices of polynomials A(t ), B (t ), D(t ) No truncation errors Term Q1,13 rel.err. (t - 1)0 0.0 Quadratic complexity in degree (t - 1)1 5.000e-16 Elapsed running time by the program varying the number of Taylor coefficients (averages over 20 independent runs) (t - 1)2 2.000e-16 (t - 1)3 1.478e-15 0,7 0,6 (t - 1)4 6.153e-15 Elapsed running time (sec) 0,5 Term Q2,13 rel.err. 0,4 (t - 1)0 6.790e-14 0,3 (t - 1)1 1.404e-13 0,2 (t - 1)2 2.094e-13 0,1 (t - 1)3 2.785e-13 0 1 2 3 4 5 10 30 50 70 90 110 130 160 190 230 270 310 (t - 1)4 – Nr. of Taylor coefficients Index Determination in DAEs using indexdet and ADOL-C 7
  • 8. Use of Algorithmic Differentiation techniques problem dimensions, ADOL-C t0 , x, d ( x, t ), f ( z , x, t ) active and passive variables, User class ‘asectra‘ initial Taylor coefficients of t active section and tag 0 daeIndexDet.cpp forward mode calculation of the Global trajectory, x (t ) parameters Taylor coefficients of independent (i.e., t) and dependent variables (i.e. x (t ) ) E.g. print out parameters, degree of Taylor coefficients ‘asecdyn‘ active and passive variables, active section and initial Taylor coefficients of x (t ) and t calculation of the tag 1 dynamic, d ( x (t ), t ) forward and and its derivative reverse modes z (t )  d ( x(t ), t ) using shift operator Taylor coefficients of independent (i.e., t and x (t ) ) and dependent variables (i.e. d ( x (t ), t ) ) and adjoints active and passive variables, initial Taylor coefficients of d( x (t ), t ), ‘asecdae‘ x (t ) and t active section and tag 2 forward and calculation of the reverse modes DAE, f ( z (t ), x (t ), t ) Taylor coefficients of independent (i.e., d( x (t ), t ) and x (t )) and dependent variables (i.e. f ( z (t ), x (t ), t ) ) and adjoints Construct matrices A, B, and D Index Determination in DAEs using indexdet and ADOL-C 8
  • 9. Workflow overview User class ‘asecdyn‘ Calculate ‘asectra‘ ‘asecdae‘ Construct ‘hqrfcp‘ dynamic d ( x (t ), t ) daeIndexDet.cpp Calculate Calculate matrices Householder QR and its derivative trajectory x (t ) DAE f ( z (t ), x (t ), t ) A, B, and D of matrix A z (t )  d ( x(t ), t ) using shift operator rA Global parameters Init. + AD ‘hqrfcp‘ Householder QR ADOL-C of matrix D Matrix sequence loop rD Not properly Initial computations stated rA  rD leading term YES Terminate NO YES YES Initialize matrices r0 ‘hqrfcp‘ Compute Compute NO 2 dim  m and variables rA  r0 Householder QR D =G0 * A V0, U01, G0 i = 1, dim = r0 of matrix G0=A*D NO NO NO NO when i = 0, i++ Qi2  Qi  0 Qi * Qi1  0 Gi * Qi  0 Compute Pi, Wi, Qi P0  D * D YES YES NO YES YES Error Index Determination in DAEs using indexdet and ADOL-C 9
  • 10. Index determination and AD daeIndexDet: A program for the index determination in DAEs using the indexdet library and the ADOL-C package for Automatic Differentiation indexdet.lib adolc.lib matrixseq.h EDynamo1.h daeIndexDet.cpp daeIndexDet.exe Index Determination in DAEs using indexdet and ADOL-C 10
  • 11. Index determination and AD daeIndexDet: A program for the index determination in DAEs using the indexdet library and the ADOL-C package for Automatic Differentiation indexdet.lib adolc.lib matrixseq.h EDynamo1.h daeIndexDet.cpp daeIndexDet.exe Index Determination in DAEs using indexdet and ADOL-C 11
  • 12. Index determination and AD daeIndexDet: A program for the index determination in DAEs using the indexdet library and the ADOL-C package for Automatic Differentiation indexdet.lib adolc.lib matrixseq.h EDynamo1.h daeIndexDet.cpp daeIndexDet.exe Index Determination in DAEs using indexdet and ADOL-C 12
  • 13. EDynamo1.h #ifndef EDYNAMO1_H_ #define EDYNAMO1_H_ #include "IDExample.h" class EDynamo1 : public IDExample { public: EDynamo1(void) : IDExample(4, 5, 0.1, "EDynamo1-01") {} void tra(adouble t, adouble *ptra) {} void dyn(adouble *px, adouble t, adouble *pd) {} void dae(adouble *py, adouble *px, adouble t, adouble *pf) {} }; #endif /*EDYNAMO1_H_*/ Index Determination in DAEs using indexdet and ADOL-C 13
  • 14. EDynamo1.h #ifndef EDYNAMO1_H_ #define EDYNAMO1_H_ Class name #include "IDExample.h" class EDynamo1 : public IDExample { public: EDynamo1(void) : IDExample(4, 5, 0.1, "EDynamo1-01") {} void tra(adouble t, adouble *ptra) {} void dyn(adouble *px, adouble t, adouble *pd) {} void dae(adouble *py, adouble *px, adouble t, adouble *pf) {} }; #endif /*EDYNAMO1_H_*/ Index Determination in DAEs using indexdet and ADOL-C 14
  • 15. EDynamo1.h #ifndef EDYNAMO1_H_ Nr. equations in dyn(...), #define EDYNAMO1_H_ nr. equations in dae(...), #include "IDExample.h" t0, and class EDynamo1 : public IDExample text used for printout { public: EDynamo1(void) : IDExample(4, 5, 0.1, "EDynamo1-01") {} void tra(adouble t, adouble *ptra) {} void dyn(adouble *px, adouble t, adouble *pd) {} void dae(adouble *py, adouble *px, adouble t, adouble *pf) {} }; #endif /*EDYNAMO1_H_*/ Index Determination in DAEs using indexdet and ADOL-C 15
  • 16. EDynamo1.h #ifndef EDYNAMO1_H_ #define EDYNAMO1_H_ Trajectory #include "IDExample.h" class EDynamo1 : public IDExample { public: EDynamo1(void) : IDExample(4, 5, 0.1, "EDynamo1-01") {} void tra(adouble t, adouble *ptra) {/*...*/} void dyn(adouble *px, adouble t, adouble *pd) {/*...*/} void dae(adouble *py, adouble *px, adouble t, adouble *pf) {/*...*/} }; #endif /*EDYNAMO1_H_*/ Index Determination in DAEs using indexdet and ADOL-C 16
  • 17. EDynamo1.h #ifndef EDYNAMO1_H_ #define EDYNAMO1_H_ Dynamic #include "IDExample.h" class EDynamo1 : public IDExample { public: EDynamo1(void) : IDExample(4, 5, 0.1, "EDynamo1-01") {} void tra(adouble t, adouble *ptra) {/*...*/} void dyn(adouble *px, adouble t, adouble *pd) {/*...*/} void dae(adouble *py, adouble *px, adouble t, adouble *pf) {/*...*/} }; #endif /*EDYNAMO1_H_*/ Index Determination in DAEs using indexdet and ADOL-C 17
  • 18. EDynamo1.h #ifndef EDYNAMO1_H_ #define EDYNAMO1_H_ DAE #include "IDExample.h" class EDynamo1 : public IDExample { public: EDynamo1(void) : IDExample(4, 5, 0.1, "EDynamo1-01") {} void tra(adouble t, adouble *ptra) {/*...*/} void dyn(adouble *px, adouble t, adouble *pd) {/*...*/} void dae(adouble *py, adouble *px, adouble t, adouble *pf) {/*...*/} }; #endif /*EDYNAMO1_H_*/ Index Determination in DAEs using indexdet and ADOL-C 18
  • 19. EDynamo1.h #ifndef EDYNAMO1_H_ #define EDYNAMO1_H_ #include "IDExample.h" class EDynamo1 : public IDExample { public: EDynamo1(void) : IDExample(4, 5, 0.1, "EDynamo1-01") {} void tra(adouble t, adouble *ptra) {/*...*/} { void dyn(adouble *px, adouble t, adouble *pd) {/*...*/} /*...*/ void dae(adouble *py, dp - v; pf[0] = adouble *px, adouble t, = dv - f( *pf) pf[1] adouble v, jL, t, k0, k, m, alpha ); pf[2] = C*de + G*e - jL; {/*...*/} pf[3] = dfi - e; }; pf[4] = fi - fiL( v, t, k0, k, r ); #endif /*EDYNAMO1_H_*/ } Index Determination in DAEs using indexdet and ADOL-C 19
  • 20. Index determination and AD daeIndexDet: A program for the index determination in DAEs using the indexdet library and the ADOL-C package for Automatic Differentiation indexdet.lib adolc.lib matrixseq.h EDynamo1.h daeIndexDet.cpp daeIndexDet.exe Index Determination in DAEs using indexdet and ADOL-C 20
  • 21. Classes and supporting files 38 114 IDException.h IDException.cpp 110 965 53 517 TPolyn.h TPolyn.cpp ioutil.h ioutil.cpp 33 164 3107 defaults.h adolc.lib Matrix.h Matrix.cpp 42 33 76 2780 IDOptions.h defs.h linalg.h linalg.cpp 195 79 66 3280 IDOptions.cpp IDExample.h matrixseq.h matrixseq.cpp 207 193 EDynamo1.h daeIndexDet.cpp Index Determination in DAEs using indexdet and ADOL-C 21
  • 22. Example: Bike Dynamo (In cooperation with project MATHEON Project D13) Electromechanical problem p : position of the mass point v : velocity e : voltage   : magnetic flow jL : conductance m, k , k0 , C , G are known L R C Index Determination in DAEs using indexdet and ADOL-C 22
  • 23. Example: Bike Dynamo (Index 4)  pv ~   f ( v, j L , t )   v 0  p  z (t )  Ce  Ge  jL  0   e  0   L (v, t ). with ~ f 2 f (v, jL , t )  mech  k0 jL sin(2kvt ) m mk L (v, t )  k0 r cos(2kvt ) f mech  gm tan( ) E.g. t  0 Singular point The new method correctly computes the index even at problem singularities!!! Index Determination in DAEs using indexdet and ADOL-C 23
  • 24. Example: Bipolar ring oscillator with inductor Circuit simulation (Index 2) G (e1  e11 )  jC1  j B 3  j1, 3  0 G (e2  e11 )  jC 2  j B 4  j2, 3  0 jE 3  j E 4  i  j1,3  j2, 3  0 G (e4  e11 )  jC 3  j B 5  j4, 6  0 G (e5  e11 )  jC 4  j B 6  j5, 6  0 jE 5  jE 6  i  j4, 6  j5, 6  0 v G (e7  e11 )  jC 5  jB1  j7 ,9  0 ja ,b   q (ea  eb ) q (v)  4 10 11 vB 1  vB G (e8  e11 )  jC 6  jB 2  j8,9  0 jB  jBE  jBC jE1  j E 2  i  j7 ,9  j8,9  0 v BE v BC IS vT IS vT jv  3i  0  (e  1)  (e  1)  r u10  v  0 jC  jBE  (1   r ) jBC Lj 'L  e11  0 L,  ,  r , v, vT , vB , G, I S , i are known G (6e11  e1  e2  e4  e5  e7  e8 )  jL  0 Index Determination in DAEs using indexdet and ADOL-C 24
  • 25. Achievements Main achievements  Exact differentiations without explicit specification of derivatives expressions  High accurate results (e.g. checking eps-conditions: equal to 0 up to machine precision). Accurate calculation of the index / consistent initial values (for the linear case)  New matrix-algebra operations to deal with AD (e.g. implementation of special matrix-matrix multiplications, QR decomposition of matrices of Taylor polynomials, etc.) with operator overloading in C++  New program and library for the index determination and the consistent initialization Index Determination in DAEs using indexdet and ADOL-C 25
  • 26. Software daeIndexDet: Program for the index determination in DAEs indexdet: Corresponding library Using Algorithmic Differentiation techniques (ADOL-C package for AD) http://www.mathematik.hu-berlin.de/~monett/indexdet/indexdet.html Index Determination in DAEs using indexdet and ADOL-C 26
  • 27. Consistent initialization • Lots of variables are used from previous computations and structure • Classes and supporting files are already available Algorithm Taylor coefficients (ADOL-C) of x, d, f and matrixes A, B, D Index computation, projectors and other variables Calculate variables vi and conform solution x Calculate xi+1 = xi + λ zi Verify convergence Index Determination in DAEs using indexdet and ADOL-C 27
  • 28. Further work 1. Computation of consistent initial values  Nonlinear case 2. Sparse implementation  Sparse LU-based implementation using Taylor arithmetic 3. Structural analysis  Exploration of extension of [Pantelides/Pryce] to computational graphs 4. If 3. promising Development and implementation of method Index Determination in DAEs using indexdet and ADOL-C 28
  • 29. Topic DAE Example f  x, h ( x, y )   0   Corresponding g  y , h ( x, y )   0   computational graph x , y , h, f , g  x f Jacobian  x h  f     y  ( f , g )  h   h h  g     y  ( x, y )  g   x     y      h  has rank  1   Transformation to ODE for ( x, y ) impossible! Structural Analysis à la Pantelides fails!!! Index Determination in DAEs using indexdet and ADOL-C 29
  • 30. Plans for 2008/2009 and beyond Solution of introductory example based on graph Expanded system Maximal Degree of Variables   z  h ( x, y )  0 x y z 1 1 0 f ( x, z )  0 0 – 0 g ( y, z )  0 – 0 0 Index Determination in DAEs using indexdet and ADOL-C 30
  • 31. Plans for 2008/2009 and beyond Solution of introductory example based on graph Expanded system Maximal Degree of Variables   z  h ( x, y )  0 x y z 1 1 0 f ( x, z )  0 0 – 0 g ( y, z )  0 – 0 0 Occurrence of derivatives determines structural index via maximal transversal Combinatorial subtasks:  Identification of replicated subgraphs  Maximal Weighted Matching on DAG  Linear Assignment Problem on Matrix Index Determination in DAEs using indexdet and ADOL-C 31