Classes

Naming Convention for Vectors, Matrices, and Solvers

The SUNDIALS vector, matrix, linear solver, and nonlinear solver classes use the naming convention <short class name><method> for base class methods where each component of the name uses camel case. See Table 1 for examples.

Note

This naming convention only applies to the vector, matrix, and solver classes. All other classes should follow the naming convention described in Naming Convention for New Classes.

Table 1 SUNDIALS base class naming convention examples for vectors, matrices, linear solvers and nonlinear solvers.

Base Class

Short Name

Operation

Method

N_Vector

N_V

Linear Sum

N_VLinearSum

SUNMatrix

SUNMat

Zero

SUNMatZero

SUNLinearSolver

Setup

Setup

SUNLinSolSetup

SUNNonlinarSolver

Solve

Solve

SUNNonlinSolSolve

Derived class implementations of the base class methods should follow the naming convention <short class name><method>_<implementation>. See Table 2 for examples.

Table 2 SUNDIALS derived class naming convention examples for vectors, matrices, linear solvers and nonlinear solvers.

Derived Class

Base Class Method

Method Implementation

Serial

N_VLinearSum

N_VLinearSum_Serial

Dense

SUNMatZero

SUNMatZero_Dense

SPGMR

SUNLinSolSetup

SUNLinSolSetup_SPGMR

Newton

SUNNonlinSolSolve

SUNNonlinSolSolve_Newton

Implementation specific methods do not currently have a consistent naming convention across the different derived classes. When adding new methods to an existing class, follow the naming style used within that class. When adding a new derived class, use the same style as above for implementations of the base class method i.e., <short class name><method>_<implementation>.

Naming Convention for New Classes

All new base classes should use the naming convention <class name>_<method> for the base class methods. See Table 3 for examples.

Table 3 SUNDIALS naming conventions for methods in new base classes.

Base Class

Operation

Method

SUNMemoryHelper

Alloc

SUNMemoryHelper_Alloc

Derived class implementations of the base class methods should follow the naming convention <class name>_<method>_<implementation>. See Table 4 for examples.

Table 4 SUNDIALS naming conventions for derived class implementations of methods in new base classes.

Derived Class

Base Class Method

Method Implementation

CUDA

SUNMemoryHelper_Alloc

SUNMemoryHelper_Alloc_Cuda