21.3. sundials4py API

This section lists the Python API for the sundials4py module and submodules.

21.3.1. Core Module

A submodule of ‘sundials4py’

class sundials4py.core.FILE
class sundials4py.core.N_Vector_ID(*values)
SUNDIALS_NVEC_CUDA = 6
SUNDIALS_NVEC_CUSTOM = 16
SUNDIALS_NVEC_HIP = 7
SUNDIALS_NVEC_KOKKOS = 10
SUNDIALS_NVEC_MANYVECTOR = 13
SUNDIALS_NVEC_MPIMANYVECTOR = 14
SUNDIALS_NVEC_MPIPLUSX = 15
SUNDIALS_NVEC_OPENMP = 2
SUNDIALS_NVEC_OPENMPDEV = 11
SUNDIALS_NVEC_PARALLEL = 1
SUNDIALS_NVEC_PARHYP = 4
SUNDIALS_NVEC_PETSC = 5
SUNDIALS_NVEC_PTHREADS = 3
SUNDIALS_NVEC_RAJA = 9
SUNDIALS_NVEC_SERIAL = 0
SUNDIALS_NVEC_SYCL = 8
SUNDIALS_NVEC_TRILINOS = 12
class sundials4py.core.SUNAdaptControllerContent_MRIHTol_(*args, **kwargs)
class sundials4py.core.SUNAdaptController_Type(*values)
SUN_ADAPTCONTROLLER_H = 1
SUN_ADAPTCONTROLLER_MRI_H_TOL = 2
SUN_ADAPTCONTROLLER_NONE = 0
class sundials4py.core.SUNAdjointCheckpointScheme_
class sundials4py.core.SUNAdjointStepper_
class sundials4py.core.SUNContext_
class sundials4py.core.SUNDataIOMode(*values)
SUNDATAIOMODE_INMEM = 0
class sundials4py.core.SUNDomEigEstimatorContent_Power_(*args, **kwargs)
class sundials4py.core.SUNDomEigEstimator_(*args, **kwargs)

An estimator is a structure with an implementation-dependent ‘content’ field, and a pointer to a structure of estimator operations corresponding to that implementation.

class sundials4py.core.SUNDomEigEstimator_Ops_(*args, **kwargs)

Structure containing function pointers to estimator operations

class sundials4py.core.SUNErrCode(*values)
SUN_ERR_ADJOINT_STEPPERFAILED = -9977
SUN_ERR_ADJOINT_STEPPERINVALIDSTOP = -9976
SUN_ERR_ARG_CORRUPT = -9999
SUN_ERR_ARG_DIMSMISMATCH = -9995
SUN_ERR_ARG_INCOMPATIBLE = -9998
SUN_ERR_ARG_OUTOFRANGE = -9997
SUN_ERR_ARG_WRONGTYPE = -9996
SUN_ERR_CHECKPOINT_MISMATCH = -9974
SUN_ERR_CHECKPOINT_NOT_FOUND = -9975
SUN_ERR_CORRUPT = -9993
SUN_ERR_DATANODE_NODENOTFOUND = -9983
SUN_ERR_DESTROY_FAIL = -9986
SUN_ERR_EXT_FAIL = -9987
SUN_ERR_FILE_OPEN = -9991
SUN_ERR_GENERIC = -9994
SUN_ERR_MALLOC_FAIL = -9988
SUN_ERR_MAXIMUM = -1000
SUN_ERR_MEM_FAIL = -9989
SUN_ERR_MINIMUM = -10000
SUN_ERR_MPI_FAIL = -9972
SUN_ERR_NOT_IMPLEMENTED = -9985
SUN_ERR_OP_FAIL = -9990
SUN_ERR_OUTOFRANGE = -9992
SUN_ERR_PROFILER_MAPFULL = -9982
SUN_ERR_PROFILER_MAPGET = -9981
SUN_ERR_PROFILER_MAPINSERT = -9980
SUN_ERR_PROFILER_MAPKEYNOTFOUND = -9979
SUN_ERR_PROFILER_MAPSORT = -9978
SUN_ERR_SUNCTX_CORRUPT = -9973
SUN_ERR_UNKNOWN = -9970
SUN_ERR_UNREACHABLE = -9971
SUN_ERR_USER_FCN_FAIL = -9984
SUN_SUCCESS = 0
class sundials4py.core.SUNFullRhsMode(*values)
SUN_FULLRHS_END = 1
SUN_FULLRHS_OTHER = 2
SUN_FULLRHS_START = 0
class sundials4py.core.SUNGramSchmidtType(*values)
SUN_CLASSICAL_GS = 2
SUN_MODIFIED_GS = 1
class sundials4py.core.SUNLinearSolver_ID(*values)
SUNLINEARSOLVER_BAND = 0
SUNLINEARSOLVER_CUSOLVERSP_BATCHQR = 12
SUNLINEARSOLVER_CUSTOM = 18
SUNLINEARSOLVER_DENSE = 1
SUNLINEARSOLVER_GINKGO = 15
SUNLINEARSOLVER_GINKGOBATCH = 16
SUNLINEARSOLVER_KLU = 2
SUNLINEARSOLVER_KOKKOSDENSE = 17
SUNLINEARSOLVER_LAPACKBAND = 3
SUNLINEARSOLVER_LAPACKDENSE = 4
SUNLINEARSOLVER_MAGMADENSE = 13
SUNLINEARSOLVER_ONEMKLDENSE = 14
SUNLINEARSOLVER_PCG = 5
SUNLINEARSOLVER_SPBCGS = 6
SUNLINEARSOLVER_SPFGMR = 7
SUNLINEARSOLVER_SPGMR = 8
SUNLINEARSOLVER_SPTFQMR = 9
SUNLINEARSOLVER_SUPERLUDIST = 10
SUNLINEARSOLVER_SUPERLUMT = 11
class sundials4py.core.SUNLinearSolver_Type(*values)
SUNLINEARSOLVER_DIRECT = 0
SUNLINEARSOLVER_ITERATIVE = 1
SUNLINEARSOLVER_MATRIX_EMBEDDED = 3
SUNLINEARSOLVER_MATRIX_ITERATIVE = 2
class sundials4py.core.SUNLogLevel(*values)
SUN_LOGLEVEL_ALL = -1
SUN_LOGLEVEL_DEBUG = 4
SUN_LOGLEVEL_ERROR = 1
SUN_LOGLEVEL_INFO = 3
SUN_LOGLEVEL_NONE = 0
SUN_LOGLEVEL_WARNING = 2
class sundials4py.core.SUNLogger_
class sundials4py.core.SUNMatrix_ID(*values)
SUNMATRIX_BAND = 3
SUNMATRIX_CUSPARSE = 6
SUNMATRIX_CUSTOM = 10
SUNMATRIX_DENSE = 0
SUNMATRIX_GINKGO = 7
SUNMATRIX_GINKGOBATCH = 8
SUNMATRIX_KOKKOSDENSE = 9
SUNMATRIX_MAGMADENSE = 1
SUNMATRIX_ONEMKLDENSE = 2
SUNMATRIX_SLUNRLOC = 5
SUNMATRIX_SPARSE = 4
class sundials4py.core.SUNMemoryHelper_(*args, **kwargs)
class sundials4py.core.SUNMemoryHelper_Ops_(*args, **kwargs)
class sundials4py.core.SUNMemoryType(*values)
SUNMEMTYPE_DEVICE = 2
SUNMEMTYPE_HOST = 0
SUNMEMTYPE_PINNED = 1
SUNMEMTYPE_UVM = 3
class sundials4py.core.SUNNonlinearSolver_Type(*values)
SUNNONLINEARSOLVER_FIXEDPOINT = 1
SUNNONLINEARSOLVER_ROOTFIND = 0
class sundials4py.core.SUNOutputFormat(*values)
SUN_OUTPUTFORMAT_CSV = 1
SUN_OUTPUTFORMAT_TABLE = 0
class sundials4py.core.SUNPrecType(*values)
SUN_PREC_BOTH = 3
SUN_PREC_LEFT = 1
SUN_PREC_NONE = 0
SUN_PREC_RIGHT = 2
class sundials4py.core.SUNProfiler_
class sundials4py.core.SUNStepper_
class sundials4py.core._N_VectorContent_ManyVector(*args, **kwargs)
class sundials4py.core._N_VectorContent_Serial(*args, **kwargs)
class sundials4py.core._SUNAdaptControllerContent_ImExGus(*args, **kwargs)
class sundials4py.core._SUNAdaptControllerContent_Soderlind(*args, **kwargs)
class sundials4py.core._SUNLinearSolverContent_Band(*args, **kwargs)
class sundials4py.core._SUNLinearSolverContent_Dense(*args, **kwargs)
class sundials4py.core._SUNLinearSolverContent_PCG(*args, **kwargs)
class sundials4py.core._SUNLinearSolverContent_SPBCGS(*args, **kwargs)
class sundials4py.core._SUNLinearSolverContent_SPFGMR(*args, **kwargs)
class sundials4py.core._SUNLinearSolverContent_SPGMR(*args, **kwargs)
class sundials4py.core._SUNLinearSolverContent_SPTFQMR(*args, **kwargs)
class sundials4py.core._SUNMatrixContent_Band(*args, **kwargs)
class sundials4py.core._SUNMatrixContent_Dense(*args, **kwargs)
class sundials4py.core._SUNMatrixContent_Sparse(*args, **kwargs)
class sundials4py.core._SUNNonlinearSolverContent_FixedPoint(*args, **kwargs)
class sundials4py.core._SUNNonlinearSolverContent_Newton(*args, **kwargs)
class sundials4py.core._generic_N_Vector(*args, **kwargs)

A vector is a structure with an implementation-dependent ‘content’ field, and a pointer to a structure of vector operations corresponding to that implementation.

class sundials4py.core._generic_N_Vector_Ops(*args, **kwargs)

Structure containing function pointers to vector operations

class sundials4py.core._generic_SUNAdaptController(*args, **kwargs)

A SUNAdaptController is a structure with an implementation-dependent ‘content’ field, and a pointer to a structure of operations corresponding to that implementation.

class sundials4py.core._generic_SUNAdaptController_Ops(*args, **kwargs)

Structure containing function pointers to controller operations

class sundials4py.core._generic_SUNLinearSolver(*args, **kwargs)

A linear solver is a structure with an implementation-dependent ‘content’ field, and a pointer to a structure of linear solver operations corresponding to that implementation.

class sundials4py.core._generic_SUNLinearSolver_Ops(*args, **kwargs)

Structure containing function pointers to linear solver operations

class sundials4py.core._generic_SUNMatrix(*args, **kwargs)

A matrix is a structure with an implementation-dependent ‘content’ field, and a pointer to a structure of matrix operations corresponding to that implementation.

class sundials4py.core._generic_SUNMatrix_Ops(*args, **kwargs)

Structure containing function pointers to matrix operations

class sundials4py.core._generic_SUNNonlinearSolver(*args, **kwargs)

A nonlinear solver is a structure with an implementation-dependent ‘content’ field, and a pointer to a structure of solver nonlinear solver operations corresponding to that implementation.

class sundials4py.core._generic_SUNNonlinearSolver_Ops(*args, **kwargs)

Structure containing function pointers to nonlinear solver operations

21.3.2. ARKODE Module

A submodule of ‘sundials4py’

class sundials4py.arkode.ARKAccumError(*values)
ARK_ACCUMERROR_AVG = 3
ARK_ACCUMERROR_MAX = 1
ARK_ACCUMERROR_NONE = 0
ARK_ACCUMERROR_SUM = 2
class sundials4py.arkode.ARKODE_DIRKTableID(*values)
ARKODE_ARK2_DIRK_3_1_2 = 123
ARKODE_ARK324L2SA_DIRK_4_2_3 = 104
ARKODE_ARK436L2SA_DIRK_6_3_4 = 109
ARKODE_ARK437L2SA_DIRK_7_3_4 = 112
ARKODE_ARK548L2SA_DIRK_8_4_5 = 111
ARKODE_ARK548L2SAb_DIRK_8_4_5 = 113
ARKODE_BACKWARD_EULER_1_1 = 124
ARKODE_BILLINGTON_3_3_2 = 101
ARKODE_CASH_5_2_4 = 105
ARKODE_CASH_5_3_4 = 106
ARKODE_DIRK_NONE = -1
ARKODE_ESDIRK324L2SA_4_2_3 = 114
ARKODE_ESDIRK325L2SA_5_2_3 = 115
ARKODE_ESDIRK32I5L2SA_5_2_3 = 116
ARKODE_ESDIRK436L2SA_6_3_4 = 117
ARKODE_ESDIRK437L2SA_7_3_4 = 120
ARKODE_ESDIRK43I6L2SA_6_3_4 = 118
ARKODE_ESDIRK547L2SA2_7_4_5 = 122
ARKODE_ESDIRK547L2SA_7_4_5 = 121
ARKODE_IMPLICIT_MIDPOINT_1_2 = 125
ARKODE_IMPLICIT_TRAPEZOIDAL_2_2 = 126
ARKODE_KVAERNO_4_2_3 = 103
ARKODE_KVAERNO_5_3_4 = 108
ARKODE_KVAERNO_7_4_5 = 110
ARKODE_MAX_DIRK_NUM = 126
ARKODE_MIN_DIRK_NUM = 100
ARKODE_QESDIRK436L2SA_6_3_4 = 119
ARKODE_SDIRK_2_1_2 = 100
ARKODE_SDIRK_5_3_4 = 107
ARKODE_TRBDF2_3_3_2 = 102
class sundials4py.arkode.ARKODE_ERKTableID(*values)
ARKODE_ARK2_ERK_3_1_2 = 15
ARKODE_ARK324L2SA_ERK_4_2_3 = 2
ARKODE_ARK436L2SA_ERK_6_3_4 = 4
ARKODE_ARK437L2SA_ERK_7_3_4 = 13
ARKODE_ARK548L2SA_ERK_8_4_5 = 9
ARKODE_ARK548L2SAb_ERK_8_4_5 = 14
ARKODE_BOGACKI_SHAMPINE_4_2_3 = 1
ARKODE_CASH_KARP_6_4_5 = 6
ARKODE_DORMAND_PRINCE_7_4_5 = 8
ARKODE_ERK_NONE = -1
ARKODE_EXPLICIT_MIDPOINT_EULER_2_1_2 = 24
ARKODE_FEHLBERG_13_7_8 = 11
ARKODE_FEHLBERG_6_4_5 = 7
ARKODE_FORWARD_EULER_1_1 = 22
ARKODE_HEUN_EULER_2_1_2 = 0
ARKODE_KNOTH_WOLKE_3_3 = 12
ARKODE_MAX_ERK_NUM = 26
ARKODE_MIN_ERK_NUM = 0
ARKODE_RALSTON_3_1_2 = 25
ARKODE_RALSTON_EULER_2_1_2 = 23
ARKODE_SAYFY_ABURUB_6_3_4 = 5
ARKODE_SHU_OSHER_3_2_3 = 17
ARKODE_SOFRONIOU_SPALETTA_5_3_4 = 16
ARKODE_TSITOURAS_7_4_5 = 26
ARKODE_VERNER_10_6_7 = 19
ARKODE_VERNER_13_7_8 = 20
ARKODE_VERNER_16_8_9 = 21
ARKODE_VERNER_8_5_6 = 10
ARKODE_VERNER_9_5_6 = 18
ARKODE_ZONNEVELD_5_3_4 = 3
class sundials4py.arkode.ARKODE_LSRKMethodType(*values)
ARKODE_LSRK_RKC_2 = 0
ARKODE_LSRK_RKL_2 = 1
ARKODE_LSRK_SSP_10_4 = 4
ARKODE_LSRK_SSP_S_2 = 2
ARKODE_LSRK_SSP_S_3 = 3
class sundials4py.arkode.ARKODE_MRITableID(*values)

MRI coupling table IDs

ARKODE_IMEX_MRI_GARK3a = 206
ARKODE_IMEX_MRI_GARK3b = 207
ARKODE_IMEX_MRI_GARK4 = 208
ARKODE_IMEX_MRI_GARK_EULER = 216
ARKODE_IMEX_MRI_GARK_MIDPOINT = 218
ARKODE_IMEX_MRI_GARK_TRAPEZOIDAL = 217
ARKODE_IMEX_MRI_SR21 = 223
ARKODE_IMEX_MRI_SR32 = 224
ARKODE_IMEX_MRI_SR43 = 225
ARKODE_MAX_MRI_NUM = 225
ARKODE_MERK21 = 219
ARKODE_MERK32 = 220
ARKODE_MERK43 = 221
ARKODE_MERK54 = 222
ARKODE_MIN_MRI_NUM = 200
ARKODE_MIS_KW3 = 200
ARKODE_MRI_GARK_BACKWARD_EULER = 214
ARKODE_MRI_GARK_ERK22a = 211
ARKODE_MRI_GARK_ERK22b = 212
ARKODE_MRI_GARK_ERK33a = 201
ARKODE_MRI_GARK_ERK45a = 202
ARKODE_MRI_GARK_ESDIRK34a = 204
ARKODE_MRI_GARK_ESDIRK46a = 205
ARKODE_MRI_GARK_FORWARD_EULER = 209
ARKODE_MRI_GARK_IMPLICIT_MIDPOINT = 215
ARKODE_MRI_GARK_IRK21a = 203
ARKODE_MRI_GARK_RALSTON2 = 210
ARKODE_MRI_GARK_RALSTON3 = 213
ARKODE_MRI_NONE = -1
class sundials4py.arkode.ARKODE_SPRKMethodID(*values)
ARKODE_MAX_SPRK_NUM = 11
ARKODE_MIN_SPRK_NUM = 0
ARKODE_SPRK_CANDY_ROZMUS_4_4 = 6
ARKODE_SPRK_EULER_1_1 = 0
ARKODE_SPRK_LEAPFROG_2_2 = 1
ARKODE_SPRK_MCLACHLAN_2_2 = 4
ARKODE_SPRK_MCLACHLAN_3_3 = 5
ARKODE_SPRK_MCLACHLAN_4_4 = 7
ARKODE_SPRK_MCLACHLAN_5_6 = 8
ARKODE_SPRK_NONE = -1
ARKODE_SPRK_PSEUDO_LEAPFROG_2_2 = 2
ARKODE_SPRK_RUTH_3_3 = 3
ARKODE_SPRK_SOFRONIOU_10_36 = 11
ARKODE_SPRK_SUZUKI_UMENO_8_16 = 10
ARKODE_SPRK_YOSHIDA_6_8 = 9
class sundials4py.arkode.ARKODE_SplittingCoefficientsID(*values)

Splitting names use the convention * ARKODE_SPLITTING_<name>_<stages>_<order>_<partitions>

ARKODE_MAX_SPLITTING_NUM = 6
ARKODE_MIN_SPLITTING_NUM = 0
ARKODE_SPLITTING_BEST_2_2_2 = 2
ARKODE_SPLITTING_LIE_TROTTER_1_1_2 = 0
ARKODE_SPLITTING_NONE = -1
ARKODE_SPLITTING_RUTH_3_3_2 = 4
ARKODE_SPLITTING_STRANG_2_2_2 = 1
ARKODE_SPLITTING_SUZUKI_3_3_2 = 3
ARKODE_SPLITTING_YOSHIDA_4_4_2 = 5
ARKODE_SPLITTING_YOSHIDA_8_6_2 = 6
class sundials4py.arkode.ARKRelaxSolver(*values)
ARK_RELAX_BRENT = 0
ARK_RELAX_NEWTON = 1
class sundials4py.arkode.ARKodeButcherTableMem(*args, **kwargs)

21.3. Types : struct ARKodeButcherTableMem, ARKodeButcherTable

class sundials4py.arkode.ARKodeSPRKTableMem(*args, **kwargs)
class sundials4py.arkode.ARKodeView
get
class sundials4py.arkode.MRISTEP_METHOD_TYPE(*values)

MRIStep method types

MRISTEP_EXPLICIT = 0
MRISTEP_IMEX = 2
MRISTEP_IMPLICIT = 1
MRISTEP_MERK = 3
MRISTEP_SR = 4
class sundials4py.arkode.MRIStepCouplingMem(*args, **kwargs)

21.3. MRI coupling data structure and associated utility routines

class sundials4py.arkode.SplittingStepCoefficientsMem(*args, **kwargs)

21.3. Types : struct SplittingStepCoefficientsMem, SplittingStepCoefficients

class sundials4py.arkode._MRIStepInnerStepper

21.3.3. CVODES Module

A submodule of ‘sundials4py’

class sundials4py.cvodes.CVodeView
get

21.3.4. IDAS Module

A submodule of ‘sundials4py’

class sundials4py.idas.IDAView
get

21.3.5. KINSOL Module

A submodule of ‘sundials4py’

class sundials4py.kinsol.KINView
get