Advanced Multi-Physics (AMP)
On-Line Documentation
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
AMP::LinearAlgebra Namespace Reference

Namespaces

namespace  detail
 
namespace  VectorHelpers
 

Classes

struct  alloc_info
 
struct  alloc_info< alloc::host >
 
class  AMPCSRMatrixParameters
 
class  AmpInterfaceLeftVectorFactory
 
class  AmpInterfaceRightVectorFactory
 
class  ArrayVectorData
 A core-local vector. More...
 
class  ArrayVectorFactory
 
class  CloneFactory
 
class  CommSelfVariable
 
class  CommunicationList
 What to send where and what to receive from where. More...
 
class  CommunicationListParameters
 Parameters class encapsulating the data necessary to instantiate a communication list. More...
 
class  CommVariable
 
struct  config_mode
 
struct  csr_construct
 
struct  csr_mode_layout
 
struct  csr_visitor
 
struct  CSRConfig
 
class  CSRLocalMatrixData
 
class  CSRLocalMatrixOperationsDefault
 
class  CSRLocalMatrixOperationsDevice
 
class  CSRMatrix
 An concrete class for dealing with dense serial matrices. More...
 
class  CSRMatrixCommunicator
 
class  CSRMatrixData
 
struct  CSRMatrixDataHelpers
 
class  CSRMatrixOperationsDefault
 
class  CSRMatrixOperationsDevice
 
class  CSRMatrixSpGEMMDefault
 
class  CSRMatrixSpGEMMDevice
 
class  CubeMeshVectorFactory
 
class  DataChangeFirer
 Interface for managing classes that need to know when managed data has changed. More...
 
class  DataChangeListener
 Interface for managing classes that need to know when managed data has changed. More...
 
class  DenseSerialMatrix
 An concrete class for dealing with dense serial matrices. More...
 
class  DenseSerialMatrixData
 An concrete class for dealing with dense serial matrices. More...
 
class  DenseSerialMatrixOperations
 
class  DeviceDataHelpers
 A default set of helper functions for vector operations. More...
 
struct  DeviceMatrixOperations
 
class  DeviceOperationsHelpers
 A default set of helper functions for vector operations. More...
 
class  EpetraMatrixData
 A Matrix with an Epetra_CrsMatrix interface. More...
 
class  EpetraMatrixOperations
 
class  EpetraVector
 A class that manages an Epetra_Vector. More...
 
class  EpetraVectorData
 A linear algebra engine that uses Epetra. More...
 
class  EpetraVectorEngineParameters
 Class that details how to construct an EpetraVectorEngine. More...
 
class  EpetraVectorOperations
 A linear algebra engine that uses Epetra. More...
 
class  EpetraVectorTests
 A helper class to store/run tests for a vector. More...
 
struct  get_mode_comp
 
class  GetRowHelper
 
class  GhostDataHelper
 
class  HypreMatrixAdaptor
 Wrapper class for constructing a hypre IJ matrix for use with solvers. More...
 
struct  index_info
 
struct  index_info< index::i32 >
 
struct  index_info< index::i64 >
 
struct  index_info< index::ill >
 
struct  make_mode
 
class  ManagedEpetraMatrix
 A class that wraps an Epetra_CrsMatrix. More...
 
class  ManagedSundialsVector
 A class that can provide a Sundials N_Vector view of an AMP Vector. More...
 
class  ManagedThyraVector
 Vector capable of returning an Epetra_Vector from a ManagedVector. More...
 
class  ManagedVectorData
 Class used to control data and kernels of various vector libraries. More...
 
class  ManagedVectorOperations
 Class used to control data and kernels of various vector libraries. More...
 
class  Matrix
 An abstract interface for using and manipulating matrices. More...
 
class  MatrixData
 
class  MatrixDataFactory
 MatrixData factory class. More...
 
class  MatrixFactory
 Matrix factory class. More...
 
class  MatrixOperations
 
struct  MatrixOperationsDefault
 
class  MatrixOperationsFactory
 MatrixOperations factory class. More...
 
class  MatrixParameters
 A class used to hold basic parameters for a matrix. More...
 
class  MatrixParametersBase
 A class used to hold basic parameters for a matrix. More...
 
class  MatrixParametersFactory
 MatrixParameters factory class. More...
 
class  MatrixTests
 A helper class to store/run tests for a matrix. More...
 
class  MeshIteratorVariable
 
class  MeshVariable
 An AMP Variable that describes how to subset a DOF for a mesh. More...
 
class  MultiSelector
 Create a multi-selector. More...
 
class  MultiVariable
 A class for combining variables. More...
 
class  MultiVector
 A collection of AMP Vectors that appear as one vector. More...
 
class  MultiVectorData
 A class used to hold vector data. More...
 
class  MultiVectorFactory
 
class  MultiVectorOperations
 A set of vector operations for multivectors. More...
 
class  NativePetscMatrix
 This is a thin wrapper around PETSc Mat. More...
 
class  NativePetscMatrixData
 This is a thin wrapper around PETSc Mat. More...
 
class  NativePetscMatrixOperations
 
class  NativePetscVectorData
 
class  NativePetscVectorFactory
 
class  NativePetscVectorOperations
 
class  NativeSundialsVectorFactory
 
class  NativeThyraVectorData
 
class  NativeThyraVectorOperations
 An AMP Vector that uses Thyra for parallel data management, linear algebra, etc. More...
 
class  NullSelector
 Create a null selector. More...
 
class  NullVectorDataFactory
 
class  NullVectorFactory
 
class  PetscCloneFactory
 
class  PETScInterfaceLeftVectorFactory
 
class  PETScInterfaceRightVectorFactory
 
class  PetscMatrix
 PetscMatrix is a bridge between AMP::LinearAlgebra::Matrix and the PETSc Vec data structure. More...
 
class  PetscVecDeleter
 Helper deleter class. More...
 
class  PetscVector
 PetscVector is a bridge between AMP::LinearAlgebra::Vector and the PETSc Vec data structure. More...
 
class  PetscVectorFactory
 A helper class to generate vectors. More...
 
class  PetscVectorTests
 A helper class to store/run tests for a vector. More...
 
class  PetscViewFactory
 
class  RandomAccessIndexer
 
class  RandomSubsetVariable
 
class  RawCSRMatrixParameters
 A class used to hold basic parameters for a matrix. More...
 
struct  scalar_info
 
struct  scalar_info< scalar::f32 >
 
struct  scalar_info< scalar::f64 >
 
struct  scalar_info< scalar::fld >
 
class  SimpleVectorFactory
 
class  StridedVariable
 An AMP Variable that describes how to stride a vector to create a SubsetVector. More...
 
class  StridedVectorFactory
 
class  SubsetCommSelfVectorData
 This vector is a subset of an AMP Vector. More...
 
class  SubsetVariable
 A variable used to create a SubsetVector. More...
 
class  SubsetVectorData
 
class  SubsetVectorParameters
 Parameters used to instantiate a Vector. More...
 
class  SundialsVector
 SundialsVector is a bridge between AMP::LinearAlgebra::Vector and the Sundials N_Vector data structure. More...
 
class  SundialsVectorParameters
 Parameters class to construct a Sundials N_Vector. More...
 
class  SundialsVectorTests
 A helper class to store/run tests for a vector. More...
 
class  ThyraVector
 ThyraVector is a bridge between AMP::LinearAlgebra::Vector and the Thyra::VectorDefaultBase data structure. More...
 
class  ThyraVectorSpaceWrapper
 Wrapper a VectorSpace in AMP. More...
 
class  ThyraVectorWrapper
 Wrapper for an AMP vector in Thyra. More...
 
class  TpetraVector
 A class that manages an Tpetra::Vector. More...
 
class  TpetraVectorData
 
class  TpetraVectorOperations
 An AMP Vector that uses Tpetra for parallel data management, linear algebra, etc. More...
 
class  TpetraVectorTests
 A helper class to store/run tests for a vector. More...
 
class  Variable
 A description of the data in the vector. More...
 
class  Vector
 Abstraction of a discrete Vector in a linear simulation. More...
 
class  VectorData
 A class used to hold vector data. More...
 
class  VectorDataDefault
 A class used to hold vector data. More...
 
class  VectorDataDevice
 A class used to hold vector data. More...
 
class  VectorDataFactory
 VectorData factory class. More...
 
class  VectorDataIterator
 Iterator for local data in a vector. More...
 
class  VectorDataNull
 A class used to hold vector data. More...
 
class  VectorFactory
 Vector factory class. More...
 
class  VectorIndexer
 
class  VectorOperations
 A class used to hold vector operations. More...
 
class  VectorOperationsDefault
 A default set of vector operations. More...
 
class  VectorOperationsDevice
 A default set of vector operations. More...
 
class  VectorOperationsFactory
 Vector factory class. More...
 
class  VectorOperationsOpenMP
 A default set of vector operations. More...
 
class  VectorSelector
 A class used by Vector::select and Vector::selectInto to create vectors with particular data. More...
 
class  VectorTests
 
class  VendorSpGEMM
 
class  ViewFactory
 
class  VS_ByVariableName
 Select a subvector based on the name of the variable. More...
 
class  VS_Comm
 Create a subset based on a AMP_MPI comm. More...
 
class  VS_Components
 Create a subset based on the components of a vector. More...
 
class  VS_Mesh
 Create a subset based on a mesh. More...
 
class  VS_MeshIterator
 Create a subset based on a mesh iterator. More...
 
class  VS_MultiVariable
 A class for selecting multi-variables. More...
 
class  VS_Stride
 Create a subset based on a stride in the vector. More...
 

Typedefs

using built_configs = detail::built_configs
 
template<csr_mode mode>
using config_mode_t = typename config_mode< mode >::type
 
template<alloc Alloc>
using DefaultCSRConfig = CSRConfig< Alloc, index::i32, index::i64, scalar::f64 >
 
using DefaultHostCSRConfig = DefaultCSRConfig< alloc::host >
 

Enumerations

enum class  alloc : uint8_t { host , device , managed }
 
enum class  csr_mode : std::uint16_t {
  hiIf = make_mode_v<alloc::host, index::i32 , index::i64 , scalar::f32> , hiId = make_mode_v<alloc::host, index::i32 , index::i64 , scalar::f64> , diIf = make_mode_v<alloc::device, index::i32 , index::i64 , scalar::f32> , diId = make_mode_v<alloc::device, index::i32 , index::i64 , scalar::f64> ,
  miIf = make_mode_v<alloc::managed, index::i32 , index::i64 , scalar::f32> , miId = make_mode_v<alloc::managed, index::i32 , index::i64 , scalar::f64> , hiif = make_mode_v<alloc::host, index::i32 , index::i32 , scalar::f32> , hiid = make_mode_v<alloc::host, index::i32 , index::i32 , scalar::f64> ,
  diif = make_mode_v<alloc::device, index::i32 , index::i32 , scalar::f32> , diid = make_mode_v<alloc::device, index::i32 , index::i32 , scalar::f64> , miif = make_mode_v<alloc::managed, index::i32 , index::i32 , scalar::f32> , miid = make_mode_v<alloc::managed, index::i32 , index::i32 , scalar::f64> ,
  hilf = make_mode_v<alloc::host, index::i32 , index::ill , scalar::f32> , hild = make_mode_v<alloc::host, index::i32 , index::ill , scalar::f64> , dilf = make_mode_v<alloc::device, index::i32 , index::ill , scalar::f32> , dild = make_mode_v<alloc::device, index::i32 , index::ill , scalar::f64> ,
  milf = make_mode_v<alloc::managed, index::i32 , index::ill , scalar::f32> , mild = make_mode_v<alloc::managed, index::i32 , index::ill , scalar::f64> , hllf = make_mode_v<alloc::host, index::ill , index::ill , scalar::f32> , hlld = make_mode_v<alloc::host, index::ill , index::ill , scalar::f64> ,
  dllf = make_mode_v<alloc::device, index::ill , index::ill , scalar::f32> , dlld = make_mode_v<alloc::device, index::ill , index::ill , scalar::f64> , mllf = make_mode_v<alloc::managed, index::ill , index::ill , scalar::f32> , mlld = make_mode_v<alloc::managed, index::ill , index::ill , scalar::f64> ,
  other = std::numeric_limits<std::uint16_t>::max()
}
 
enum class  index : uint8_t { i32 , i64 , ill }
 
enum class  scalar : uint8_t { f32 , f64 , fld }
 
enum class  ScatterType : uint8_t { CONSISTENT_ADD , CONSISTENT_SET }
 Flag to choose algorithm for makeConsistent. More...
 
enum class  UpdateState : uint8_t {
  UNCHANGED = 0 , LOCAL_CHANGED = 1 , ADDING = 2 , SETTING = 3 ,
  MIXED = 4
}
 The four states a Vector can be in. More...
 

Functions

template<typename T , typename FUN = FunctionTable<T>, typename Allocator = AMP::HostAllocator<void>>
Vector::shared_ptr createArrayVector (const ArraySize &localSize, const ArraySize &blockIndex, const AMP_MPI &comm, std::shared_ptr< Variable > var)
 Create a ArrayVector.
 
template<typename T , typename FUN = FunctionTable<T>, typename Allocator = AMP::HostAllocator<void>>
Vector::shared_ptr createArrayVector (const ArraySize &localSize, const std::string &var)
 Create a ArrayVector.
 
template<typename T , typename FUN = FunctionTable<T>, typename Allocator = AMP::HostAllocator<void>>
Vector::shared_ptr createArrayVector (const ArraySize &localSize, std::shared_ptr< Variable > var)
 Cre ate a ArrayVector.
 
std::shared_ptr< VectorcreateEpetraVector (std::shared_ptr< CommunicationList > commList, std::shared_ptr< AMP::Discretization::DOFManager > DOFs, std::shared_ptr< VectorData > p=nullptr)
 Create an epetra vector.
 
std::shared_ptr< MatrixcreateMatrix (AMP::LinearAlgebra::Vector::shared_ptr right, AMP::LinearAlgebra::Vector::shared_ptr left, AMP::Utilities::Backend accelerationBackend, std::string type="auto", std::function< std::vector< size_t >(size_t row)> getColumnIDs=std::function< std::vector< size_t >(size_t)>())
 This function will create a matrix from two vectors.
 
std::shared_ptr< MatrixcreateMatrix (AMP::LinearAlgebra::Vector::shared_ptr right, AMP::LinearAlgebra::Vector::shared_ptr left, const std::string &type="auto", std::function< std::vector< size_t >(size_t row)> getColumnIDs=std::function< std::vector< size_t >(size_t)>())
 This function will create a matrix from two vectors.
 
std::shared_ptr< MatrixcreateMatrix (Mat M, bool deleteable)
 Create a matrix from an arbitrary PETSc Mat.
 
template<typename ConfigOut >
std::shared_ptr< AMP::LinearAlgebra::MatrixcreateMatrix (std::shared_ptr< AMP::LinearAlgebra::Matrix > matrix)
 
template<typename ConfigOut >
std::shared_ptr< AMP::LinearAlgebra::MatrixcreateMatrix (std::shared_ptr< AMP::LinearAlgebra::Matrix > matrix, AMP::Utilities::Backend accelerationBackend)
 
std::shared_ptr< AMP::LinearAlgebra::MatrixcreateMatrix (std::shared_ptr< AMP::LinearAlgebra::Matrix > matrix, AMP::Utilities::MemoryType memType)
 
std::shared_ptr< AMP::LinearAlgebra::MatrixcreateMatrix (std::shared_ptr< AMP::LinearAlgebra::Matrix > matrix, AMP::Utilities::MemoryType memType, AMP::Utilities::Backend accelerationBackend)
 
template<class MATRIXDATA >
std::unique_ptr< MATRIXDATA > createMatrixDataFromRestart (int64_t fid, AMP::IO::RestartManager *manager)
 
template<class MATRIX >
std::unique_ptr< MATRIX > createMatrixFromRestart (int64_t fid, AMP::IO::RestartManager *manager)
 
template<class VECTOROPERATIONS >
std::unique_ptr< VECTOROPERATIONS > createMatrixOperationsFromRestart (int64_t fid, AMP::IO::RestartManager *manager)
 
template<class MATRIXPARAMETERS >
std::unique_ptr< MATRIXPARAMETERS > createMatrixParametersFromRestart (int64_t fid, AMP::IO::RestartManager *manager)
 
template<typename TYPE , typename VecOps = VectorOperationsDefault<TYPE>, typename VecData = VectorDataDefault<TYPE>>
Vector::shared_ptr createSimpleVector (size_t localSize, const std::string &var)
 Create a simple AMP vector.
 
template<typename TYPE , typename VecOps = VectorOperationsDefault<TYPE>, typename VecData = VectorDataDefault<TYPE>>
Vector::shared_ptr createSimpleVector (size_t localSize, std::shared_ptr< Variable > var)
 Create a simple AMP vector.
 
template<typename TYPE , typename VecOps = VectorOperationsDefault<TYPE>, typename VecData = VectorDataDefault<TYPE>>
Vector::shared_ptr createSimpleVector (size_t localSize, std::shared_ptr< Variable > var, AMP_MPI comm)
 Create a simple AMP vector.
 
template<typename TYPE , typename VecOps = VectorOperationsDefault<TYPE>, typename VecData = VectorDataDefault<TYPE>>
Vector::shared_ptr createSimpleVector (std::shared_ptr< Variable > var, std::shared_ptr< AMP::Discretization::DOFManager > DOFs, std::shared_ptr< CommunicationList > commlist)
 Create a simple AMP vector.
 
std::shared_ptr< VectorcreateTpetraVector (std::shared_ptr< CommunicationList > commList, std::shared_ptr< AMP::Discretization::DOFManager > DOFs, std::shared_ptr< VectorData > p=nullptr)
 Create a Tpetra vector.
 
template<typename TYPE = double, typename DATA = VectorDataDefault<TYPE>>
AMP::LinearAlgebra::Vector::shared_ptr createVector (std::shared_ptr< AMP::Discretization::DOFManager > DOFs, std::shared_ptr< AMP::LinearAlgebra::Variable > variable, bool split, AMP::Utilities::Backend backend)
 This function will create a vector from a DOFManager with a given ops backend.
 
template<typename TYPE = double>
AMP::LinearAlgebra::Vector::shared_ptr createVector (std::shared_ptr< AMP::Discretization::DOFManager > DOFs, std::shared_ptr< AMP::LinearAlgebra::Variable > variable, bool split, AMP::Utilities::MemoryType memType)
 This function will create a vector from an arbitrary DOFManager.
 
template<typename TYPE = double>
AMP::LinearAlgebra::Vector::shared_ptr createVector (std::shared_ptr< AMP::Discretization::DOFManager > DOFs, std::shared_ptr< AMP::LinearAlgebra::Variable > variable, bool split, AMP::Utilities::MemoryType memType, AMP::Utilities::Backend backend)
 This function will create a vector from an arbitrary DOFManager.
 
template<typename TYPE = double, typename OPS = VectorOperationsDefault<TYPE>, typename DATA = VectorDataDefault<TYPE>>
AMP::LinearAlgebra::Vector::shared_ptr createVector (std::shared_ptr< AMP::Discretization::DOFManager > DOFs, std::shared_ptr< AMP::LinearAlgebra::Variable > variable, bool split=true)
 This function will create a vector from an arbitrary DOFManager.
 
template<typename TYPE = double>
AMP::LinearAlgebra::Vector::shared_ptr createVector (std::shared_ptr< AMP::LinearAlgebra::Vector > vector, AMP::Utilities::MemoryType memType)
 This function will create a vector from a vector.
 
template<typename TYPE = double>
AMP::LinearAlgebra::Vector::shared_ptr createVector (std::shared_ptr< AMP::LinearAlgebra::Vector > vector, AMP::Utilities::MemoryType memType, AMP::Utilities::Backend backend)
 This function will create a vector from a vector.
 
AMP::LinearAlgebra::Vector::shared_ptr createVector (std::shared_ptr< const AMP::LinearAlgebra::Vector > vector, AMP::Utilities::MemoryType memType)
 This function will create a vector from a vector.
 
AMP::LinearAlgebra::Vector::shared_ptr createVector (std::shared_ptr< const AMP::LinearAlgebra::Vector > vector, AMP::Utilities::MemoryType memType, AMP::Utilities::Backend backend)
 This function will create a vector from a vector.
 
std::shared_ptr< VectorcreateVector (Vec v, bool deleteable, AMP_MPI comm=AMP_MPI(), std::shared_ptr< Variable > var=nullptr)
 Create a vector from an arbitrary PETSc Vec.
 
template<typename T >
Vector::shared_ptr createVectorAdaptor (const std::string &name, std::shared_ptr< AMP::Discretization::DOFManager > DOFs, T *data)
 Create a view to raw vector data.
 
template<class VECTORDATA >
std::unique_ptr< VECTORDATA > createVectorDataFromRestart (int64_t fid, AMP::IO::RestartManager *manager)
 
template<class VECTOR >
std::unique_ptr< VECTOR > createVectorFromRestart (int64_t fid, AMP::IO::RestartManager *manager)
 
template<class VECTOROPERATIONS >
std::unique_ptr< VECTOROPERATIONS > createVectorOperationsFromRestart (int64_t fid, AMP::IO::RestartManager *manager)
 
template<class F >
 csr_visitor (csr_mode, std::shared_ptr< Matrix >, F) -> csr_visitor< F >
 
template<typename T >
auto csrConstruct (csr_mode mode, int64_t fid, AMP::IO::RestartManager *manager, const std::string &class_type="")
 
template<class F >
auto csrVisit (std::shared_ptr< Matrix > mat, F &&f)
 
void fillWithPseudoLaplacian (std::shared_ptr< AMP::LinearAlgebra::Matrix > matrix)
 
std::shared_ptr< VectorFactorygenerateVectorFactory (const std::string &factory)
 Generate the desired vector factory.
 
auto get_alloc (csr_mode mode)
 
template<class L >
auto get_from_mode (csr_mode mode)
 
auto get_gidx (csr_mode mode)
 
auto get_lidx (csr_mode mode)
 
auto get_scalar (csr_mode mode)
 
std::vector< std::string > getAllFactories ()
 Get the valid vector factories.
 
std::vector< std::string > getArrayVectorFactories ()
 Get the valid vector factories.
 
template<typename Config >
static CSRMatrixData< Config > * getCSRMatrixData (MatrixData &A)
 
template<typename Config >
static CSRMatrixData< Config > const * getCSRMatrixData (MatrixData const &A)
 
std::string getDefaultMatrixType ()
 Return the default matrix type.
 
std::shared_ptr< Epetra_Vector > getEpetra (std::shared_ptr< Vector > vec)
 
std::shared_ptr< ManagedEpetraMatrixgetEpetraMatrix (std::shared_ptr< Matrix > mat)
 
std::vector< std::string > getManagedVectorFactories ()
 Get the valid vector factories.
 
std::vector< std::string > getMeshVectorFactories ()
 Get the valid vector factories.
 
std::vector< std::string > getNativeVectorFactories ()
 Get the valid vector factories.
 
std::vector< std::string > getSimpleVectorFactories ()
 Get the valid vector factories.
 
std::shared_ptr< Tpetra::Vector<> > getTpetra (std::shared_ptr< Vector > vec)
 
bool is_built (csr_mode mode)
 
AMP::LinearAlgebra::Vector::shared_ptr joinVectors (AMP::LinearAlgebra::Vector::shared_ptr vec1, AMP::LinearAlgebra::Vector::shared_ptr vec2)
 
std::ostream & operator<< (std::ostream &out, const Matrix &p)
 
std::ostream & operator<< (std::ostream &out, const Vector &)
 Stream operator.
 
std::ostream & operator<< (std::ostream &out, const Vector::shared_ptr)
 Stream operator.
 
std::ostream & operator<< (std::ostream &out, std::shared_ptr< const Matrix > p)
 
AMP::LinearAlgebra::Vector::shared_ptr subsetExceptForVariable (AMP::LinearAlgebra::Vector::shared_ptr inVec, std::shared_ptr< AMP::LinearAlgebra::Variable > var)
 
void test_matrix_loop (AMP::UnitTest &ut, std::shared_ptr< MatrixFactory > factory, std::shared_ptr< MatrixFactory > copy_factory=nullptr)
 
void test_matrix_loop (AMP::UnitTest &ut, std::shared_ptr< MatrixTests > tests)
 
void testBasics (AMP::UnitTest &ut, const std::string &type)
 
template<typename Policy >
void transformDofToCSR (std::shared_ptr< Matrix > matrix, typename Policy::gidx_t &startRow, typename Policy::gidx_t &endRow, typename Policy::gidx_t &startCol, typename Policy::gidx_t &endCol, std::vector< typename Policy::lidx_t > &rs_d, std::vector< typename Policy::gidx_t > &cols_d, std::vector< typename Policy::scalar_t > &coeffs_d, std::vector< typename Policy::lidx_t > &rs_od, std::vector< typename Policy::gidx_t > &cols_od, std::vector< typename Policy::scalar_t > &coeffs_od)
 

Variables

template<csr_mode mode>
constexpr alloc get_alloc_v = get_mode_comp<mode, csr_mode_layout::alloc>::value
 
template<csr_mode mode>
constexpr index get_gidx_v = get_mode_comp<mode, csr_mode_layout::gidx>::value
 
template<csr_mode mode>
constexpr index get_lidx_v = get_mode_comp<mode, csr_mode_layout::lidx>::value
 
template<csr_mode mode>
constexpr scalar get_scalar_v = get_mode_comp<mode, csr_mode_layout::scalar>::value
 
template<class C >
constexpr bool is_config_built = detail::contains<C, built_configs>::value
 
template<alloc a, index l, index g, scalar s>
constexpr std::uint16_t make_mode_v = make_mode<a, l, g, s>::value
 

Typedef Documentation

◆ built_configs

Definition at line 376 of file CSRConfig.h.

◆ config_mode_t

template<csr_mode mode>
using AMP::LinearAlgebra::config_mode_t = typedef typename config_mode<mode>::type

Definition at line 356 of file CSRConfig.h.

◆ DefaultCSRConfig

Definition at line 412 of file CSRConfig.h.

◆ DefaultHostCSRConfig

Definition at line 413 of file CSRConfig.h.

Enumeration Type Documentation

◆ alloc

enum class AMP::LinearAlgebra::alloc : uint8_t
strong
Enumerator
host 
device 
managed 

Definition at line 20 of file CSRConfig.h.

◆ csr_mode

enum class AMP::LinearAlgebra::csr_mode : std::uint16_t
strong
Enumerator
hiIf 
hiId 
diIf 
diId 
miIf 
miId 
hiif 
hiid 
diif 
diid 
miif 
miid 
hilf 
hild 
dilf 
dild 
milf 
mild 
hllf 
hlld 
dllf 
dlld 
mllf 
mlld 
other 

Definition at line 160 of file CSRConfig.h.

◆ index

enum class AMP::LinearAlgebra::index : uint8_t
strong
Enumerator
i32 
i64 
ill 

Definition at line 21 of file CSRConfig.h.

◆ scalar

enum class AMP::LinearAlgebra::scalar : uint8_t
strong
Enumerator
f32 
f64 
fld 

Definition at line 22 of file CSRConfig.h.

◆ ScatterType

enum class AMP::LinearAlgebra::ScatterType : uint8_t
strong

Flag to choose algorithm for makeConsistent.

See also
makeConsistent
Enumerator
CONSISTENT_ADD 
CONSISTENT_SET 

Definition at line 21 of file Variable.h.

◆ UpdateState

enum class AMP::LinearAlgebra::UpdateState : uint8_t
strong

The four states a Vector can be in.

See also
makeConsistent
Enumerator
UNCHANGED 
LOCAL_CHANGED 
ADDING 
SETTING 
MIXED 

Definition at line 26 of file Variable.h.

Function Documentation

◆ createArrayVector() [1/3]

template<typename T , typename FUN = FunctionTable<T>, typename Allocator = AMP::HostAllocator<void>>
Vector::shared_ptr AMP::LinearAlgebra::createArrayVector ( const ArraySize localSize,
const ArraySize blockIndex,
const AMP_MPI comm,
std::shared_ptr< Variable var 
)

Create a ArrayVector.

This is the factory method for the ArrayVector.

Parameters
localSizeThe number of elements in the vector on this processor
blockIndexThe block index for the current rank
commThe communicator for the vector
varThe variable associated with the new vector

◆ createArrayVector() [2/3]

template<typename T , typename FUN = FunctionTable<T>, typename Allocator = AMP::HostAllocator<void>>
Vector::shared_ptr AMP::LinearAlgebra::createArrayVector ( const ArraySize localSize,
const std::string &  var 
)

Create a ArrayVector.

This is the factory method for the ArrayVector.

Parameters
localSizeThe number of elements in the vector on this processor
varThe variable name for the new vector

◆ createArrayVector() [3/3]

template<typename T , typename FUN = FunctionTable<T>, typename Allocator = AMP::HostAllocator<void>>
Vector::shared_ptr AMP::LinearAlgebra::createArrayVector ( const ArraySize localSize,
std::shared_ptr< Variable var 
)

Cre ate a ArrayVector.

This is the factory method for the ArrayVector.

Parameters
localSizeThe number of elements in the vector on this processor
varThe variable associated with the new vector

◆ createEpetraVector()

std::shared_ptr< Vector > AMP::LinearAlgebra::createEpetraVector ( std::shared_ptr< CommunicationList commList,
std::shared_ptr< AMP::Discretization::DOFManager DOFs,
std::shared_ptr< VectorData p = nullptr 
)

Create an epetra vector.

Parameters
[in]commListCommunication list
[in]DOFsDOF manager
[in]pOptional VectorData object

◆ createMatrix() [1/7]

std::shared_ptr< Matrix > AMP::LinearAlgebra::createMatrix ( AMP::LinearAlgebra::Vector::shared_ptr  right,
AMP::LinearAlgebra::Vector::shared_ptr  left,
AMP::Utilities::Backend  accelerationBackend,
std::string  type = "auto",
std::function< std::vector< size_t >(size_t row)>  getColumnIDs = std::function< std::vector< size_t >(size_t)>() 
)

This function will create a matrix from two vectors.

This function is responsible for creating matrices given a left and a right vector

Parameters
rightVector that will be used to create the matrix The right is x in the expression y = A*x.
leftVector that will be used to create the matrix. The left is y in the expression y = A*x.
accelerationBackendBackend used for matrix operations.
typeType of matrix to build: auto: Automatically determined based on build (default) ManagedPetscMatrix ManagedEpetraMatrix DenseSerialMatrix
getColumnIDsFunction to provide the column indices given the row index. If not provided, with will default to calling the getRowDOFs function on the DOFManager associated with the left vector.

◆ createMatrix() [2/7]

std::shared_ptr< Matrix > AMP::LinearAlgebra::createMatrix ( AMP::LinearAlgebra::Vector::shared_ptr  right,
AMP::LinearAlgebra::Vector::shared_ptr  left,
const std::string &  type = "auto",
std::function< std::vector< size_t >(size_t row)>  getColumnIDs = std::function< std::vector< size_t >(size_t)>() 
)

This function will create a matrix from two vectors.

This function is responsible for creating matrices given a left and a right vector

Parameters
rightVector that will be used to create the matrix The right is x in the expression y = A*x.
leftVector that will be used to create the matrix. The left is y in the expression y = A*x.
typeType of matrix to build: auto: Automatically determined based on build (default) ManagedPetscMatrix ManagedEpetraMatrix DenseSerialMatrix
getColumnIDsFunction to provide the column indices given the row index. If not provided, with will default to calling the getRowDOFs function on the DOFManager associated with the left vector.

◆ createMatrix() [3/7]

std::shared_ptr< Matrix > AMP::LinearAlgebra::createMatrix ( Mat  M,
bool  deleteable 
)

Create a matrix from an arbitrary PETSc Mat.

This function creates a matrix from an arbitrary PETSc Mat

Parameters
[in]MPETSc Mat
[in]deleteableIf true, ~Matrix() will call MatDestroy()

◆ createMatrix() [4/7]

template<typename ConfigOut >
std::shared_ptr< AMP::LinearAlgebra::Matrix > AMP::LinearAlgebra::createMatrix ( std::shared_ptr< AMP::LinearAlgebra::Matrix matrix)

◆ createMatrix() [5/7]

template<typename ConfigOut >
std::shared_ptr< AMP::LinearAlgebra::Matrix > AMP::LinearAlgebra::createMatrix ( std::shared_ptr< AMP::LinearAlgebra::Matrix matrix,
AMP::Utilities::Backend  accelerationBackend 
)

◆ createMatrix() [6/7]

std::shared_ptr< AMP::LinearAlgebra::Matrix > AMP::LinearAlgebra::createMatrix ( std::shared_ptr< AMP::LinearAlgebra::Matrix matrix,
AMP::Utilities::MemoryType  memType 
)

◆ createMatrix() [7/7]

std::shared_ptr< AMP::LinearAlgebra::Matrix > AMP::LinearAlgebra::createMatrix ( std::shared_ptr< AMP::LinearAlgebra::Matrix matrix,
AMP::Utilities::MemoryType  memType,
AMP::Utilities::Backend  accelerationBackend 
)

◆ createMatrixDataFromRestart()

template<class MATRIXDATA >
std::unique_ptr< MATRIXDATA > AMP::LinearAlgebra::createMatrixDataFromRestart ( int64_t  fid,
AMP::IO::RestartManager manager 
)

Definition at line 17 of file MatrixDataFactory.h.

◆ createMatrixFromRestart()

template<class MATRIX >
std::unique_ptr< MATRIX > AMP::LinearAlgebra::createMatrixFromRestart ( int64_t  fid,
AMP::IO::RestartManager manager 
)

Definition at line 17 of file MatrixFactory.h.

◆ createMatrixOperationsFromRestart()

template<class VECTOROPERATIONS >
std::unique_ptr< VECTOROPERATIONS > AMP::LinearAlgebra::createMatrixOperationsFromRestart ( int64_t  fid,
AMP::IO::RestartManager manager 
)

Definition at line 18 of file MatrixOperationsFactory.h.

◆ createMatrixParametersFromRestart()

template<class MATRIXPARAMETERS >
std::unique_ptr< MATRIXPARAMETERS > AMP::LinearAlgebra::createMatrixParametersFromRestart ( int64_t  fid,
AMP::IO::RestartManager manager 
)

Definition at line 18 of file MatrixParametersFactory.h.

◆ createSimpleVector() [1/4]

template<typename TYPE , typename VecOps = VectorOperationsDefault<TYPE>, typename VecData = VectorDataDefault<TYPE>>
Vector::shared_ptr AMP::LinearAlgebra::createSimpleVector ( size_t  localSize,
const std::string &  var 
)

Create a simple AMP vector.

This is a factory method to create a simple AMP vector.

Parameters
localSizeThe number of elements in the vector on this processor
varThe variable associated with the new vector

◆ createSimpleVector() [2/4]

template<typename TYPE , typename VecOps = VectorOperationsDefault<TYPE>, typename VecData = VectorDataDefault<TYPE>>
Vector::shared_ptr AMP::LinearAlgebra::createSimpleVector ( size_t  localSize,
std::shared_ptr< Variable var 
)

Create a simple AMP vector.

This is a factory method to create a simple AMP vector.

Parameters
localSizeThe number of elements in the vector on this processor
varThe variable associated with the new vector

◆ createSimpleVector() [3/4]

template<typename TYPE , typename VecOps = VectorOperationsDefault<TYPE>, typename VecData = VectorDataDefault<TYPE>>
Vector::shared_ptr AMP::LinearAlgebra::createSimpleVector ( size_t  localSize,
std::shared_ptr< Variable var,
AMP_MPI  comm 
)

Create a simple AMP vector.

This is a factory method to create a simple AMP vector.

Parameters
localSizeThe number of elements in the vector on this processor
varThe variable associated with the new vector
commThe variable associated with the new vector

◆ createSimpleVector() [4/4]

template<typename TYPE , typename VecOps = VectorOperationsDefault<TYPE>, typename VecData = VectorDataDefault<TYPE>>
Vector::shared_ptr AMP::LinearAlgebra::createSimpleVector ( std::shared_ptr< Variable var,
std::shared_ptr< AMP::Discretization::DOFManager DOFs,
std::shared_ptr< CommunicationList commlist 
)

Create a simple AMP vector.

This is a factory method to create a simple AMP vector. It spans a comm and contains ghost values.

Parameters
varThe variable associated with the new vector
DOFsThe DOFManager
commlistThe communication list

◆ createTpetraVector()

std::shared_ptr< Vector > AMP::LinearAlgebra::createTpetraVector ( std::shared_ptr< CommunicationList commList,
std::shared_ptr< AMP::Discretization::DOFManager DOFs,
std::shared_ptr< VectorData p = nullptr 
)

Create a Tpetra vector.

Parameters
[in]commListCommunication list
[in]DOFsDOF manager
[in]pOptional VectorData object

◆ createVector() [1/9]

template<typename TYPE = double, typename DATA = VectorDataDefault<TYPE>>
AMP::LinearAlgebra::Vector::shared_ptr AMP::LinearAlgebra::createVector ( std::shared_ptr< AMP::Discretization::DOFManager DOFs,
std::shared_ptr< AMP::LinearAlgebra::Variable variable,
bool  split,
AMP::Utilities::Backend  backend 
)

This function will create a vector from a DOFManager with a given ops backend.

◆ createVector() [2/9]

template<typename TYPE = double>
AMP::LinearAlgebra::Vector::shared_ptr AMP::LinearAlgebra::createVector ( std::shared_ptr< AMP::Discretization::DOFManager DOFs,
std::shared_ptr< AMP::LinearAlgebra::Variable variable,
bool  split,
AMP::Utilities::MemoryType  memType 
)

This function will create a vector from an arbitrary DOFManager.

This function is responsible for creating vectors from a DOFManager and variable.

Parameters
[in]DOFsDOFManager to use for constucting the vector
[in]variableVariable for the vector
[in]splitIf we are given a multiDOFManager, do we want to split the vector based on the individual DOFManagers to create a MultiVector
[in]memTypeMemory space in which to create vector

◆ createVector() [3/9]

template<typename TYPE = double>
AMP::LinearAlgebra::Vector::shared_ptr AMP::LinearAlgebra::createVector ( std::shared_ptr< AMP::Discretization::DOFManager DOFs,
std::shared_ptr< AMP::LinearAlgebra::Variable variable,
bool  split,
AMP::Utilities::MemoryType  memType,
AMP::Utilities::Backend  backend 
)

This function will create a vector from an arbitrary DOFManager.

This function is responsible for creating vectors from a DOFManager and variable.

Parameters
[in]DOFsDOFManager to use for constucting the vector
[in]variableVariable for the vector
[in]splitIf we are given a multiDOFManager, do we want to split the vector based on the individual DOFManagers to create a MultiVector
[in]memTypeMemory space in which to create vector
[in]backendBackend for operations

◆ createVector() [4/9]

template<typename TYPE = double, typename OPS = VectorOperationsDefault<TYPE>, typename DATA = VectorDataDefault<TYPE>>
AMP::LinearAlgebra::Vector::shared_ptr AMP::LinearAlgebra::createVector ( std::shared_ptr< AMP::Discretization::DOFManager DOFs,
std::shared_ptr< AMP::LinearAlgebra::Variable variable,
bool  split = true 
)

This function will create a vector from an arbitrary DOFManager.

This function is responsible for creating vectors from a DOFManager and variable.

Parameters
[in]DOFsDOFManager to use for constucting the vector
[in]variableVariable for the vector
[in]splitIf we are given a multiDOFManager, do we want to split the vector based on the individual DOFManagers to create a MultiVector

Referenced by AMP::LinearAlgebra::PETScInterfaceLeftVectorFactory::getVector(), AMP::LinearAlgebra::PETScInterfaceRightVectorFactory::getVector(), AMP::Mesh::meshTests::MeshVectorFactory::getVector(), and AMP::LinearAlgebra::NativePetscVectorFactory::getVector().

◆ createVector() [5/9]

template<typename TYPE = double>
AMP::LinearAlgebra::Vector::shared_ptr AMP::LinearAlgebra::createVector ( std::shared_ptr< AMP::LinearAlgebra::Vector vector,
AMP::Utilities::MemoryType  memType 
)

This function will create a vector from a vector.

This function is responsible for creating vectors from an existing vector.

Parameters
[in]vectorVector we want to mimic
[in]memTypeMemory space in which to create vector

◆ createVector() [6/9]

template<typename TYPE = double>
AMP::LinearAlgebra::Vector::shared_ptr AMP::LinearAlgebra::createVector ( std::shared_ptr< AMP::LinearAlgebra::Vector vector,
AMP::Utilities::MemoryType  memType,
AMP::Utilities::Backend  backend 
)

This function will create a vector from a vector.

This function is responsible for creating vectors from an existing vector.

Parameters
[in]vectorVector we want to mimic
[in]memTypeMemory space in which to create vector
[in]backendBackend for operations

◆ createVector() [7/9]

AMP::LinearAlgebra::Vector::shared_ptr AMP::LinearAlgebra::createVector ( std::shared_ptr< const AMP::LinearAlgebra::Vector vector,
AMP::Utilities::MemoryType  memType 
)

This function will create a vector from a vector.

This function is responsible for creating vectors from an existing vector.

Parameters
[in]vectorVector we want to mimic
[in]memTypeMemory space in which to create vector

◆ createVector() [8/9]

AMP::LinearAlgebra::Vector::shared_ptr AMP::LinearAlgebra::createVector ( std::shared_ptr< const AMP::LinearAlgebra::Vector vector,
AMP::Utilities::MemoryType  memType,
AMP::Utilities::Backend  backend 
)

This function will create a vector from a vector.

This function is responsible for creating vectors from an existing vector.

Parameters
[in]vectorVector we want to mimic
[in]memTypeMemory space in which to create vector
[in]backendBackend for operations

◆ createVector() [9/9]

std::shared_ptr< Vector > AMP::LinearAlgebra::createVector ( Vec  v,
bool  deleteable,
AMP_MPI  comm = AMP_MPI(),
std::shared_ptr< Variable var = nullptr 
)

Create a vector from an arbitrary PETSc Vec.

This function creates a vector from an arbitrary PETSc Vec

Parameters
[in]vPETSc Vec
[in]deleteableIf true, ~Vector() will call VecDestroy()
[in]commThe communicator associated with the Vec (optional)
[in]varThe variable to use with the vector (optional)

◆ createVectorAdaptor()

template<typename T >
Vector::shared_ptr AMP::LinearAlgebra::createVectorAdaptor ( const std::string &  name,
std::shared_ptr< AMP::Discretization::DOFManager DOFs,
T *  data 
)

Create a view to raw vector data.

This is the factory method for the raw vector view.

◆ createVectorDataFromRestart()

template<class VECTORDATA >
std::unique_ptr< VECTORDATA > AMP::LinearAlgebra::createVectorDataFromRestart ( int64_t  fid,
AMP::IO::RestartManager manager 
)

Definition at line 17 of file VectorDataFactory.h.

◆ createVectorFromRestart()

template<class VECTOR >
std::unique_ptr< VECTOR > AMP::LinearAlgebra::createVectorFromRestart ( int64_t  fid,
AMP::IO::RestartManager manager 
)

Definition at line 17 of file VectorFactory.h.

◆ createVectorOperationsFromRestart()

template<class VECTOROPERATIONS >
std::unique_ptr< VECTOROPERATIONS > AMP::LinearAlgebra::createVectorOperationsFromRestart ( int64_t  fid,
AMP::IO::RestartManager manager 
)

Definition at line 18 of file VectorOperationsFactory.h.

◆ csr_visitor()

template<class F >
AMP::LinearAlgebra::csr_visitor ( csr_mode  ,
std::shared_ptr< Matrix ,
 
) -> csr_visitor< F >

◆ csrConstruct()

template<typename T >
auto AMP::LinearAlgebra::csrConstruct ( csr_mode  mode,
int64_t  fid,
AMP::IO::RestartManager manager,
const std::string &  class_type = "" 
)

Definition at line 130 of file CSRConstruct.h.

◆ csrVisit()

template<class F >
auto AMP::LinearAlgebra::csrVisit ( std::shared_ptr< Matrix mat,
F &&  f 
)

Helper to recover a CSR matrix type from a type erased Matrix pointer

Parameters
[in]matGeneric matrix pointer
[in]fCallable that will be invoked with the CSR Matrix pointer
Returns
Result of calling f with CSR Matrix pointer

Definition at line 106 of file CSRVisit.h.

◆ fillWithPseudoLaplacian()

void AMP::LinearAlgebra::fillWithPseudoLaplacian ( std::shared_ptr< AMP::LinearAlgebra::Matrix matrix)

◆ generateVectorFactory()

std::shared_ptr< VectorFactory > AMP::LinearAlgebra::generateVectorFactory ( const std::string &  factory)

Generate the desired vector factory.

This will generate the desired vector factory

Parameters
[in]factoryThe vector factory to generate: SimpleVectorFactory<15,false,double> SimpleVectorFactory<45, true,double> SimpleVectorFactory<45,true,double,openmp,gpu> ArrayVectorFactory<4,10,false,double> ArrayVectorFactory<4,10,true,double> SimplePetscNativeFactory MultiVectorFactory<SMEVFactory, 1, SNPVFactory, 1> MVFactory1; MultiVectorFactory<SMEVFactory, 3, SNPVFactory, 2> MVFactory2; MultiVectorFactory<MVFactory1, 2, MVFactory2, 2> MVFactory3; MultiVectorFactory<SimpleVectorFactory<15,false>,1,SMEVFactory,1> MVFactory1; MultiVectorFactory<SimpleVectorFactory<15,false>,3,SMEVFactory,2> MVFactory2; MultiVectorFactory<MVFactory1, 2, MVFactory2, 2> MVFactory3;

◆ get_alloc()

auto AMP::LinearAlgebra::get_alloc ( csr_mode  mode)
inline

◆ get_from_mode()

template<class L >
auto AMP::LinearAlgebra::get_from_mode ( csr_mode  mode)

Definition at line 340 of file CSRConfig.h.

◆ get_gidx()

auto AMP::LinearAlgebra::get_gidx ( csr_mode  mode)
inline

◆ get_lidx()

auto AMP::LinearAlgebra::get_lidx ( csr_mode  mode)
inline

◆ get_scalar()

auto AMP::LinearAlgebra::get_scalar ( csr_mode  mode)
inline

◆ getAllFactories()

std::vector< std::string > AMP::LinearAlgebra::getAllFactories ( )

Get the valid vector factories.

This will generate a list of all valid factories to test

◆ getArrayVectorFactories()

std::vector< std::string > AMP::LinearAlgebra::getArrayVectorFactories ( )

Get the valid vector factories.

This will generate a list of valid ArrayVector factories to test

◆ getCSRMatrixData() [1/2]

template<typename Config >
static CSRMatrixData< Config > * AMP::LinearAlgebra::getCSRMatrixData ( MatrixData A)
static

Definition at line 415 of file CSRMatrixData.h.

References AMP_INSIST.

◆ getCSRMatrixData() [2/2]

template<typename Config >
static CSRMatrixData< Config > const * AMP::LinearAlgebra::getCSRMatrixData ( MatrixData const &  A)
static

Definition at line 407 of file CSRMatrixData.h.

References AMP_INSIST.

◆ getDefaultMatrixType()

std::string AMP::LinearAlgebra::getDefaultMatrixType ( )

Return the default matrix type.

◆ getEpetra()

std::shared_ptr< Epetra_Vector > AMP::LinearAlgebra::getEpetra ( std::shared_ptr< Vector vec)

◆ getEpetraMatrix()

std::shared_ptr< ManagedEpetraMatrix > AMP::LinearAlgebra::getEpetraMatrix ( std::shared_ptr< Matrix mat)

◆ getManagedVectorFactories()

std::vector< std::string > AMP::LinearAlgebra::getManagedVectorFactories ( )

Get the valid vector factories.

This will generate a list of valid managed vector factories to test

◆ getMeshVectorFactories()

std::vector< std::string > AMP::LinearAlgebra::getMeshVectorFactories ( )

Get the valid vector factories.

This will generate a list of valid mesh vector factories to test

◆ getNativeVectorFactories()

std::vector< std::string > AMP::LinearAlgebra::getNativeVectorFactories ( )

Get the valid vector factories.

This will generate a list of valid native factories to test

◆ getSimpleVectorFactories()

std::vector< std::string > AMP::LinearAlgebra::getSimpleVectorFactories ( )

Get the valid vector factories.

This will generate a list of valid SimpleVector factories to test

◆ getTpetra()

std::shared_ptr< Tpetra::Vector<> > AMP::LinearAlgebra::getTpetra ( std::shared_ptr< Vector vec)

◆ is_built()

bool AMP::LinearAlgebra::is_built ( csr_mode  mode)
inline

Definition at line 390 of file CSRConfig.h.

References CSR_CONFIG_FORALL, and X.

◆ joinVectors()

◆ operator<<() [1/4]

std::ostream & AMP::LinearAlgebra::operator<< ( std::ostream &  out,
const Matrix p 
)

Referenced by operator<<().

◆ operator<<() [2/4]

std::ostream & AMP::LinearAlgebra::operator<< ( std::ostream &  out,
const Vector  
)

Stream operator.

◆ operator<<() [3/4]

std::ostream & AMP::LinearAlgebra::operator<< ( std::ostream &  out,
const Vector::shared_ptr   
)

Stream operator.

◆ operator<<() [4/4]

std::ostream & AMP::LinearAlgebra::operator<< ( std::ostream &  out,
std::shared_ptr< const Matrix p 
)
inline

Definition at line 451 of file Matrix.h.

References operator<<().

◆ subsetExceptForVariable()

AMP::LinearAlgebra::Vector::shared_ptr AMP::LinearAlgebra::subsetExceptForVariable ( AMP::LinearAlgebra::Vector::shared_ptr  inVec,
std::shared_ptr< AMP::LinearAlgebra::Variable var 
)

◆ test_matrix_loop() [1/2]

void AMP::LinearAlgebra::test_matrix_loop ( AMP::UnitTest ut,
std::shared_ptr< MatrixFactory factory,
std::shared_ptr< MatrixFactory copy_factory = nullptr 
)

◆ test_matrix_loop() [2/2]

void AMP::LinearAlgebra::test_matrix_loop ( AMP::UnitTest ut,
std::shared_ptr< MatrixTests tests 
)

◆ testBasics()

void AMP::LinearAlgebra::testBasics ( AMP::UnitTest ut,
const std::string &  type 
)

◆ transformDofToCSR()

template<typename Policy >
void AMP::LinearAlgebra::transformDofToCSR ( std::shared_ptr< Matrix matrix,
typename Policy::gidx_t &  startRow,
typename Policy::gidx_t &  endRow,
typename Policy::gidx_t &  startCol,
typename Policy::gidx_t &  endCol,
std::vector< typename Policy::lidx_t > &  rs_d,
std::vector< typename Policy::gidx_t > &  cols_d,
std::vector< typename Policy::scalar_t > &  coeffs_d,
std::vector< typename Policy::lidx_t > &  rs_od,
std::vector< typename Policy::gidx_t > &  cols_od,
std::vector< typename Policy::scalar_t > &  coeffs_od 
)

Definition at line 12 of file MatrixDataTransforms.h.

References AMP_ASSERT.

Variable Documentation

◆ get_alloc_v

template<csr_mode mode>
constexpr alloc AMP::LinearAlgebra::get_alloc_v = get_mode_comp<mode, csr_mode_layout::alloc>::value
constexpr

Definition at line 327 of file CSRConfig.h.

◆ get_gidx_v

template<csr_mode mode>
constexpr index AMP::LinearAlgebra::get_gidx_v = get_mode_comp<mode, csr_mode_layout::gidx>::value
constexpr

Definition at line 333 of file CSRConfig.h.

◆ get_lidx_v

template<csr_mode mode>
constexpr index AMP::LinearAlgebra::get_lidx_v = get_mode_comp<mode, csr_mode_layout::lidx>::value
constexpr

Definition at line 330 of file CSRConfig.h.

◆ get_scalar_v

template<csr_mode mode>
constexpr scalar AMP::LinearAlgebra::get_scalar_v = get_mode_comp<mode, csr_mode_layout::scalar>::value
constexpr

Definition at line 336 of file CSRConfig.h.

◆ is_config_built

template<class C >
constexpr bool AMP::LinearAlgebra::is_config_built = detail::contains<C, built_configs>::value
constexpr

Definition at line 388 of file CSRConfig.h.

◆ make_mode_v

template<alloc a, index l, index g, scalar s>
constexpr std::uint16_t AMP::LinearAlgebra::make_mode_v = make_mode<a, l, g, s>::value
constexpr

Definition at line 150 of file CSRConfig.h.



Advanced Multi-Physics (AMP)
Oak Ridge National Laboratory
Idaho National Laboratory
Los Alamos National Laboratory
This page automatically produced from the
source code by doxygen
Last updated: Tue Mar 10 2026 13:06:42.
Comments on this page