Skip to content
Merged
Show file tree
Hide file tree
Changes from 136 commits
Commits
Show all changes
137 commits
Select commit Hold shift + click to select a range
651aa31
Merged changes from dom_eig branch
drreynolds Apr 17, 2025
1e2c3f2
Merged changes from upstream
drreynolds Apr 21, 2025
2553603
Initial construction of N_VRandom -- still need to add this to a few …
drreynolds Apr 21, 2025
8cda819
Merge branch 'feature/dom-eig' of github.com:LLNL/sundials into featu…
drreynolds Apr 21, 2025
7e1ac25
Updated N_VRandom in vector implementations
drreynolds Apr 22, 2025
458c3fc
arnoldi_Create_Common
maggul May 17, 2025
acee184
arnoldi_Create_Common
maggul May 17, 2025
2c910d2
arnoldi_DQJtimes
maggul May 20, 2025
45aba8e
lsrkStep_DQJtimes
maggul May 24, 2025
6b6a57e
LSRKStepArnoldi
maggul May 24, 2025
fa30f2e
lsrkStep_ComputeNewDomEig
maggul May 24, 2025
d278d6e
ArnoldiPowerIteration
maggul May 25, 2025
749b43d
an LSRK example with the internal domeig estimation
maggul May 25, 2025
4fe2173
CI test error fixes
maggul May 28, 2025
6650b90
update lsrkStep_ArnoldiCreate to be implicit
maggul May 28, 2025
2a271cf
length check for unnecessary memory allocation
maggul May 28, 2025
a8f46db
LAPACK_* arrays
maggul May 28, 2025
0ad47c8
arnoldi to domeig name change
maggul May 28, 2025
0bc088b
updated functions for SUNErrCode returns
maggul Jun 3, 2025
587eeaf
Removed sunctx argument
maggul Jun 3, 2025
cf61411
DomEigDestroy argument fix
maggul Jun 3, 2025
a3ed799
removed the sunctx check
maggul Jun 4, 2025
377d54a
header and src files
maggul Jun 7, 2025
8c45054
first compiled version -- needs debugging
maggul Jun 7, 2025
441d82f
unit test and lsrk example works fine -- needs polishing
maggul Jun 7, 2025
09b1c29
CI test debug
maggul Jun 8, 2025
ada6e6e
CI testing fixes
maggul Jun 8, 2025
b8581eb
unit tests
maggul Jun 8, 2025
2dd60c4
ARKODE_LSRKInternal_DomEigEst_Type
maggul Jun 9, 2025
a30128d
header updates
maggul Jun 9, 2025
dfc1a41
CMakeLists updates
maggul Jun 9, 2025
582519d
formatting
maggul Jun 9, 2025
6015f05
CI debugs
maggul Jun 9, 2025
97ce489
added newline at end of file
maggul Jun 9, 2025
3ff8e89
CI debugs
maggul Jun 9, 2025
092114c
CI debugs
maggul Jun 9, 2025
77fca38
CI debugs
maggul Jun 9, 2025
8fdb8b0
CI debugs
maggul Jun 9, 2025
00320b8
CI debugs
maggul Jun 9, 2025
6a42006
commenting out SUNCheckMPICallNull(MPI_Comm_rank(comm, &myid))
maggul Jun 9, 2025
7226d93
formatting and uncommenting MPI_Comm_rank(comm, &myid); without an er…
maggul Jun 9, 2025
d42471b
resolved the issue with SUNCheckMPICallNull
maggul Jun 10, 2025
10369e7
Arnoldi iteration unit test
maggul Jun 11, 2025
2a16f1a
unit tests
maggul Jun 14, 2025
66202d3
doc files and set/get routines
maggul Jun 17, 2025
477c50d
CI debug and power_of_A to numwarmups change
maggul Jun 17, 2025
8461e44
new line at the end
maggul Jun 17, 2025
90016a9
CI debugs
maggul Jun 17, 2025
84898ac
format patch
maggul Jun 17, 2025
9130482
output files
maggul Jun 17, 2025
67f6740
suncomplextype to lambdaR + i lambdaI
maggul Jun 18, 2025
c415504
answers repo update
maggul Jun 18, 2025
18d3b3f
Merge branch 'develop' into feature/dom-eig
balos1 Jun 18, 2025
eee9a50
formatting
maggul Jun 19, 2025
3288aba
CI Debug
maggul Jun 19, 2025
7d6090e
CI Debug
maggul Jun 19, 2025
073cd8d
memory leak issue
maggul Jun 19, 2025
002a518
include path update - suncomplextype removal from docs
maggul Jun 19, 2025
84f85e1
formatting
maggul Jun 19, 2025
9001c03
Bulk updates
maggul Jun 19, 2025
9a6a61c
newline at end of file
maggul Jun 19, 2025
d73dcd7
Bulk updates 2
maggul Jun 20, 2025
6d0caf7
applied swig.patch
maggul Jun 20, 2025
5e65761
CI Debug
maggul Jun 20, 2025
28cde31
LAPACK int issue
maggul Jun 21, 2025
e9689fa
documentation and several other updates
maggul Jun 23, 2025
a0f6ffd
swig
maggul Jun 23, 2025
0ade7f4
spelling
maggul Jun 23, 2025
f0263db
CI debug & formatting
maggul Jun 23, 2025
6fa8a9c
updated answers
maggul Jun 23, 2025
691fe10
spelling issue
maggul Jun 23, 2025
4729b05
ark_heat2D_lsrk_internal_domeig
maggul Jun 25, 2025
3a11168
Merge branch 'develop' into feature/dom-eig
maggul Jun 25, 2025
ef48f26
swig, formatting, spelling
maggul Jun 25, 2025
8287d8b
update the answers
maggul Jun 25, 2025
471b5c1
merge
maggul Jul 1, 2025
1abba72
update answers submodule
gardner48 Jul 1, 2025
63d5940
update tarscript
gardner48 Jul 1, 2025
12ac2b3
link to curand targets
gardner48 Jul 1, 2025
88a24e4
include curand_kernel.h
gardner48 Jul 1, 2025
12a15b2
add N_VRandom_Cuda to public header
gardner48 Jul 1, 2025
c014514
link ArnI to LAPACK
gardner48 Jul 1, 2025
99dc4f4
comment out internal LAPACK dependence, user should create/attach
gardner48 Jul 1, 2025
58b0f49
apply formatting
gardner48 Jul 1, 2025
492f157
fix vexing parse warning
gardner48 Jul 1, 2025
cfea235
export N_VRandom_Petsc
gardner48 Jul 1, 2025
bece642
include sundials_errors_impl.h
gardner48 Jul 2, 2025
6d451a8
fix typo, export N_VRandom_Trilinos
gardner48 Jul 2, 2025
5fbd5e7
remove incorrect const
gardner48 Jul 2, 2025
25fd3cb
add semicolon
gardner48 Jul 2, 2025
3902fdc
comment out internal domeig example, user should create/attach
gardner48 Jul 2, 2025
7b90e2d
apply formatting
gardner48 Jul 2, 2025
44ef64e
fix geev wrapper and workspace allocation
gardner48 Jul 2, 2025
eabb13d
fix typo
gardner48 Jul 2, 2025
196dee2
fix type for krydim
gardner48 Jul 2, 2025
7c4e953
comment out printf, should use error handler
gardner48 Jul 2, 2025
187dd1f
fix memory leaks
gardner48 Jul 2, 2025
8b36a23
apply formatting
gardner48 Jul 2, 2025
deb6ad7
update answers submodule
gardner48 Jul 2, 2025
96bcdcc
remove cmake dom eig additions outside arkode
gardner48 Jul 2, 2025
a75bf14
use SUNRabs (fix extended precision build)
gardner48 Jul 3, 2025
2dd982e
remove doc additions outside arkode
gardner48 Jul 3, 2025
884217e
update answers submodule
gardner48 Jul 8, 2025
4e72994
Removed N_VRandom; both PI and Arni need new initialization procedure.
drreynolds Jul 8, 2025
7865af5
Merge branch 'develop' into feature/dom-eig
gardner48 Jul 8, 2025
742cc63
revert answers submodule to main
gardner48 Jul 8, 2025
026ee80
Merge branch 'develop' into feature/dom-eig
gardner48 Jul 8, 2025
69f794a
update answers submodule to dom-eig
gardner48 Jul 8, 2025
695a26d
Merge branch 'develop' into feature/dom-eig
gardner48 Jul 10, 2025
5aee4c8
update answers submodule
gardner48 Jul 10, 2025
72f3def
doc updates, to be continued
maggul Jul 10, 2025
ffc260b
some progress
maggul Jul 11, 2025
e3cb290
some progress
maggul Jul 12, 2025
d2371f3
applied swig and debug ci
maggul Jul 12, 2025
af328ab
CI debug
maggul Jul 12, 2025
b7b6168
CI debug
maggul Jul 13, 2025
1144084
PI fixes
maggul Jul 13, 2025
6826a90
formatting and CI debug
maggul Jul 13, 2025
5b01c1e
examples udpate
maggul Jul 13, 2025
21e155b
formatting, CI debug and answers update
maggul Jul 13, 2025
55fac99
doc fix and remove impl header
maggul Jul 13, 2025
2fd158b
spelling error first round
maggul Jul 15, 2025
0c65a84
spelling error
maggul Jul 15, 2025
cb60123
spelling error
maggul Jul 15, 2025
ca32f7d
SUNDomEigEst_Destroy
maggul Jul 16, 2025
fd83275
SUNDIALS_MARK_FUNCTION_*
maggul Jul 16, 2025
9afa5ae
formatting
maggul Jul 16, 2025
90c0748
bulk revision
maggul Jul 17, 2025
4e3ef14
swig, formatting and doc fix
maggul Jul 17, 2025
d77563c
removed ComputeHess
maggul Jul 17, 2025
85d6280
doc fix and update output files
maggul Jul 18, 2025
b07da3f
removed the preprocess
maggul Jul 18, 2025
4338498
PI -> Power and ArnI -> Arnoldi
maggul Jul 18, 2025
789a3b9
CI debug
maggul Jul 18, 2025
f9b62b1
added extra arguments in DEE constructors
maggul Jul 18, 2025
911d09a
format change in print and formatting
maggul Jul 18, 2025
957ce76
Merge branch 'develop' into feature/dom-eig
gardner48 Jul 21, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,19 @@
# SUNDIALS Changelog


## Changes to SUNDIALS in release X.Y.Z

### Major Features

Added the `SUNDomEigEstimator` interface for estimating the dominant value of a system.
Two implementations are provided: Power Iteration and Arnoldi Iteration. The latter
method requires building with LAPACK support enabled.

Added the function `LSRKStepSetDomEigEstimator` in LSRKStep to attach a
`SUNDomEigEstimator`, when using Runge-Kutta-Chebyshev or Runge-Kutta-Legendre
methods, as an alternative to supplying a user-defined function to compute the dominant
eigenvalue.

### New Features and Enhancements

The functions `KINSetMAA` and `KINSetOrthAA` have been updated to allow for
Expand Down Expand Up @@ -36,6 +46,7 @@ erroneous forcing terms.

### Deprecation Notices


## Changes to SUNDIALS in release 7.4.0

### New Features and Enhancements
Expand Down
3 changes: 3 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,9 @@ set(sunlinsollib_SOVERSION "5")
set(sunnonlinsollib_VERSION "4.4.0")
set(sunnonlinsollib_SOVERSION "4")

set(sundomeigestlib_VERSION "1.0.0")
set(sundomeigestlib_SOVERSION "1")

set(sundialslib_VERSION
"${PACKAGE_VERSION_MAJOR}.${PACKAGE_VERSION_MINOR}.${PACKAGE_VERSION_PATCH}"
)
Expand Down
4 changes: 2 additions & 2 deletions cmake/SUNDIALSConfig.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,8 @@ if("@ENABLE_ADIAK@" AND NOT TARGET adiak::adiak)
find_dependency(adiak PATHS "@adiak_DIR@")
endif()

if("@ENABLE_CUDA@" AND NOT (TARGET CUDA::cudart AND TARGET CUDA::cublas
AND TARGET CUDA::cusparse AND TARGET CUDA::cusolver))
if("@ENABLE_CUDA@" AND NOT (TARGET CUDA::cudart AND TARGET CUDA::curand
AND TARGET CUDA::cublas AND TARGET CUDA::cusparse AND TARGET CUDA::cusolver))
find_dependency(CUDAToolkit)
endif()

Expand Down
99 changes: 90 additions & 9 deletions doc/arkode/guide/source/Usage/LSRKStep/User_callable.rst
Original file line number Diff line number Diff line change
Expand Up @@ -174,20 +174,65 @@ Allowable Method Families

.. c:function:: int LSRKStepSetDomEigFn(void* arkode_mem, ARKDomEigFn dom_eig);

Specifies the dominant eigenvalue approximation routine to
Specifies the user-supplied dominant eigenvalue approximation routine to
be used for determining the number of stages that will be used by either the
RKC or RKL methods.
RKC or RKL methods. ``dom_eig = NULL`` input creates internal SUNDIALS Dominant
Eigenvalue Estimator (DEE) to serve this goal.

**Arguments:**
* *arkode_mem* -- pointer to the LSRKStep memory block.
* *dom_eig* -- name of user-supplied dominant eigenvalue approximation function (of type :c:func:`ARKDomEigFn()`).

**Return value:**
* *ARK_SUCCESS* if successful
* *ARKLS_MEM_NULL* if ``arkode_mem`` was ``NULL``.
* *ARK_ILL_INPUT* ``dom_eig = NULL`` and LSRKStep does not currently estimate this internally.
* *ARK_MEM_NULL* if ``arkode_mem`` was ``NULL``.
* *ARK_DEE_FAIL* if ``dom_eig = NULL`` and DEE failed.

.. note:: This function is currently required when either the RKC or RKL methods are used.
.. note:: *ARK_DEE_FAIL* return should also produce error messages due to DEE error(s). These errors
are handled by :c:type:`SUNErrCode`.

Either this function or the DEE creator function, :c:func:`LSRKStepSetDomEigEstimator` is required
when either the RKC or RKL methods are used.

:c:func:`LSRKStepSetDomEigFn` expects a user-provided spectral radius function pointer of type
:c:func:`ARKDomEigFn()`.

Note that although a DEE creation routine requires :c:func:`SUNDomEigEst_SetATimes` with a valid
matrix-vector product function pointer, creating a DEE with :c:func:`LSRKStepSetDomEigFn`
uses an internal Jacobian-vector product estimation that is passed with the *arkode_mem* pointer.
Similarly, it estimates the eigenvalue as needed internally without requiring a call to
:c:func:`SUNDomEig_Estimate`.


.. c:function:: int LSRKStepSetDomEigEstimator(void* arkode_mem, SUNDomEigEstimator DEE);

Specifies the user-supplied dominant eigenvalue estimator (DEE) to be used for
determining the number of stages that will be used by either the RKC or RKL methods.
This function is an alternative to :c:func:`LSRKStepSetDomEigFn` and is used when a DEE
has already been created. TODO: Add extra information about how we implement this function
after deciding on it by the group.
Comment on lines +224 to +225
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's unclear to me what is needed for this "TODO". Generally, we describe the "mathematics" of the algorithms elsewhere in the documentation, and refer back to that here. If the question refers to what should be described about the algorithms, then my response is that inside the relevant file, all aspects of the algorithm should either be cited from publications or should be described in sufficient detail so that the inputs to each "set" routine make sense.

Given that you implemented these as standalone SUNDIALS utilities, the proper location to describe those algorithms is in doc/sundomeigest/SUNDomEigEst_Arnoldi.rst and doc/sundomeigest/SUNDomEigEst_Power.rst. I would then add a reference to those here similar to "Information on the SUNDomEigEstimator implementations provided by SUNDIALS may be found in :ref:SUNDomEigEst.Introduction."


**Arguments:**
* *arkode_mem* -- pointer to the LSRKStep memory block.
* *DEE* -- pointer to the SUNDIALS Dominant Eigenvalue Estimator (of type :c:type:`SUNDomEigEstimator`).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the SUNDomEigEstimator itself, not a pointer:

Suggested change
* *DEE* -- pointer to the SUNDIALS Dominant Eigenvalue Estimator (of type :c:type:`SUNDomEigEstimator`).
* *DEE* -- the SUNDIALS Dominant Eigenvalue Estimator to use (of type :c:type:`SUNDomEigEstimator`).


**Return value:**
* *ARK_SUCCESS* if successful
* *ARK_MEM_NULL* if ``arkode_mem`` was ``NULL``.
* *ARK_ILL_INPUT* if an argument had an illegal value (e.g. DEE itself or some of the required options is ``NULL``)
* *ARK_DEE_FAIL* if DEE failed.

.. note:: *ARK_DEE_FAIL* return should also produce error messages due to DEE error(s). These errors
are handled by :c:type:`SUNErrCode`.

Either this function or the user-supplied dominant eigenvalue estimator creator function,
:c:func:`LSRKStepSetDomEigFn` is required when either the RKC or RKL methods are used.

Note that although a DEE creation routine requires :c:func:`SUNDomEigEst_SetATimes` with a valid
matrix-vector product function pointer, setting a DEE with :c:func:`LSRKStepSetDomEigEstimator`
uses an internal Jacobian-vector product estimation that is passed with the *arkode_mem* pointer.
Similarly, it estimates the eigenvalue as needed internally without requiring a call to
:c:func:`SUNDomEig_Estimate`.


.. c:function:: int LSRKStepSetDomEigFrequency(void* arkode_mem, long int nsteps);
Expand All @@ -201,7 +246,7 @@ Allowable Method Families

**Return value:**
* *ARK_SUCCESS* if successful
* *ARKLS_MEM_NULL* if ``arkode_mem`` was ``NULL``.
* *ARK_MEM_NULL* if ``arkode_mem`` was ``NULL``.

.. note:: If LSRKStepSetDomEigFrequency routine is not called, then the default ``nsteps`` is set to :math:`25` as recommended in :cite:p:`VSH:04`.
Calling this function with ``nsteps < 0`` resets the default value while ``nsteps = 0`` refers to constant dominant eigenvalue.
Expand All @@ -218,7 +263,7 @@ Allowable Method Families

**Return value:**
* *ARK_SUCCESS* if successful
* *ARKLS_MEM_NULL* if ``arkode_mem`` was ``NULL``.
* *ARK_MEM_NULL* if ``arkode_mem`` was ``NULL``.

.. note:: If LSRKStepSetMaxNumStages routine is not called, then the default ``stage_max_limit`` is
set to :math:`200`. Calling this function with ``stage_max_limit < 2`` resets the default value.
Expand All @@ -239,12 +284,28 @@ Allowable Method Families

**Return value:**
* *ARK_SUCCESS* if successful
* *ARKLS_MEM_NULL* if ``arkode_mem`` was ``NULL``.
* *ARK_MEM_NULL* if ``arkode_mem`` was ``NULL``.

.. note:: If LSRKStepSetDomEigSafetyFactor routine is not called, then the default ``dom_eig_safety`` is
set to :math:`1.01`. Calling this function with ``dom_eig_safety < 1`` resets the default value.


.. c:function:: int LSRKStepSetNumSucceedingWarmups(void* arkode_mem, int num_succ_warmups);

Specifies the number of the preprocessing warmups before each estimate call succeeding the very first estimate call.

**Arguments:**
* *arkode_mem* -- pointer to the LSRKStep memory block.
* *num_succ_warmups* -- the number of succeeding warmups.

**Return value:**
* *ARK_SUCCESS* if successful
* *ARK_MEM_NULL* if ``arkode_mem`` was ``NULL``.

.. note:: If LSRKStepSetNumSucceedingWarmups routine is not called, then the default ``num_succ_warmups`` is set to :math:`0`.
Calling this function with ``num_succ_warmups < 0`` resets the default.
Comment on lines +338 to +339
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd indent this so that the "Note" is included as part of this function's documentation:

Suggested change
.. note:: If LSRKStepSetNumSucceedingWarmups routine is not called, then the default ``num_succ_warmups`` is set to :math:`0`.
Calling this function with ``num_succ_warmups < 0`` resets the default.
.. note:: If LSRKStepSetNumSucceedingWarmups routine is not called, then the default ``num_succ_warmups`` is set to :math:`0`.
Calling this function with ``num_succ_warmups < 0`` resets the default.



.. c:function:: int LSRKStepSetNumSSPStages(void* arkode_mem, int num_of_stages);

Sets the number of stages, ``s`` in ``SSP(s, p)`` methods. This input is only utilized by SSPRK methods.
Expand All @@ -259,7 +320,7 @@ Allowable Method Families

**Return value:**
* *ARK_SUCCESS* if successful
* *ARKLS_MEM_NULL* if ``arkode_mem`` was ``NULL``.
* *ARK_MEM_NULL* if ``arkode_mem`` was ``NULL``.
* *ARK_ILL_INPUT* if an argument had an illegal value (e.g. SSP method is not declared)

.. note:: If LSRKStepSetNumSSPStages routine is not called, then the default ``num_of_stages`` is
Expand Down Expand Up @@ -298,6 +359,26 @@ Optional output functions
**Return value:**
* *ARK_SUCCESS* if successful
* *ARK_MEM_NULL* if the LSRKStep memory was ``NULL``
* *ARK_ILL_INPUT* if ``stage_max`` is illegal


.. c:function:: int LSRKStepGetNumDomEigEstRhsEvals(void* arkode_mem, long int* nfeDQ);

Returns the number of RHS function evaluations used in the difference quotient
Jacobian approximations (so far).

**Arguments:**
* *arkode_mem* -- pointer to the LSRKStep memory block.
* *nfeDQ* -- number of rhs calls.

**Return value:**
* *ARK_SUCCESS* if successful
* *ARK_MEM_NULL* if the LSRKStep memory was ``NULL``
* *ARK_ILL_INPUT* if ``nfeDQ`` is illegal

.. note:: The internal SUNDIALS dominant eigenvalue estimator (DEE) uses this approximation.
Therefore, it returns 0 if DEE the was not created.
Comment on lines +417 to +418
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again, I'd indent this to reside within the function documentation:

Suggested change
.. note:: The internal SUNDIALS dominant eigenvalue estimator (DEE) uses this approximation.
Therefore, it returns 0 if DEE the was not created.
.. note:: The internal SUNDIALS dominant eigenvalue estimator (DEE) uses this approximation.
Therefore, it returns 0 if DEE the was not created.



.. _ARKODE.Usage.LSRKStep.Reinitialization:

Expand Down
1 change: 1 addition & 0 deletions doc/arkode/guide/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ with support by the `US Department of Energy <http://www.doe.gov>`_,
sunmatrix/index.rst
sunlinsol/index.rst
sunnonlinsol/index.rst
sundomeigest/index.rst
sunadaptcontroller/index.rst
sunstepper/index.rst
sunadjoint/index.rst
Expand Down
17 changes: 17 additions & 0 deletions doc/arkode/guide/source/sundomeigest/SUNDomEigEst_links.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
.. ----------------------------------------------------------------
SUNDIALS Copyright Start
Copyright (c) 2002-2025, Lawrence Livermore National Security
and Southern Methodist University.
All rights reserved.

See the top-level LICENSE and NOTICE files for details.

SPDX-License-Identifier: BSD-3-Clause
SUNDIALS Copyright End
----------------------------------------------------------------

.. include:: ../../../../shared/sundomeigest/SUNDomEigEst_Introduction.rst
.. include:: ../../../../shared/sundomeigest/SUNDomEigEst_API.rst
.. include:: ../../../../shared/sundomeigest/SUNDomEigEst_Power.rst
.. include:: ../../../../shared/sundomeigest/SUNDomEigEst_Arnoldi.rst
.. include:: ../../../../shared/sundomeigest/SUNDomEigEst_Examples.rst
24 changes: 24 additions & 0 deletions doc/arkode/guide/source/sundomeigest/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
.. ----------------------------------------------------------------
Mustafa Aggul @ SMU
----------------------------------------------------------------
SUNDIALS Copyright Start
Copyright (c) 2002-2025, Lawrence Livermore National Security
and Southern Methodist University.
All rights reserved.

See the top-level LICENSE and NOTICE files for details.

SPDX-License-Identifier: BSD-3-Clause
SUNDIALS Copyright End
----------------------------------------------------------------

.. _SUNDomEigEst:

##############################
Dominant Eigenvalue Estimators
##############################

.. toctree::
:maxdepth: 1

SUNDomEigEst_links.rst
28 changes: 28 additions & 0 deletions doc/shared/sundials.bib
Original file line number Diff line number Diff line change
Expand Up @@ -2645,3 +2645,31 @@ @article{rackauckas2020universal
journal={arXiv preprint arXiv:2001.04385},
year={2020}
}

%
% Arnoldi Iteration
%

@article{arnoldi51,
title={The principle of minimized iterations in the solution of the matrix eigenvalue problem},
author={Arnoldi, W. E.},
journal={Quarterly of Applied Mathematics},
volume={9},
number={1},
pages={17--29},
year={1951}
}

%
% Power Iteration
%

@article{vonmises29,
title={Praktische Verfahren der Gleichungsauflösung},
author={von Mises, Richard and Pollaczek-Geiringer, Hilda},
journal={Zeitschrift für Angewandte Mathematik und Mechanik},
volume={9},
pages={152--164},
doi = {10.1002/zamm.19290090206},
year={1929}
}
Loading
Loading