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< Vector > | createEpetraVector (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< Matrix > | 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. | |
| std::shared_ptr< Matrix > | 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. | |
| std::shared_ptr< Matrix > | createMatrix (Mat M, bool deleteable) |
| Create a matrix from an arbitrary PETSc Mat. | |
| template<typename ConfigOut > | |
| std::shared_ptr< AMP::LinearAlgebra::Matrix > | createMatrix (std::shared_ptr< AMP::LinearAlgebra::Matrix > matrix) |
| template<typename ConfigOut > | |
| std::shared_ptr< AMP::LinearAlgebra::Matrix > | createMatrix (std::shared_ptr< AMP::LinearAlgebra::Matrix > matrix, AMP::Utilities::Backend accelerationBackend) |
| std::shared_ptr< AMP::LinearAlgebra::Matrix > | createMatrix (std::shared_ptr< AMP::LinearAlgebra::Matrix > matrix, AMP::Utilities::MemoryType memType) |
| std::shared_ptr< AMP::LinearAlgebra::Matrix > | createMatrix (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< Vector > | createTpetraVector (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< Vector > | createVector (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< VectorFactory > | generateVectorFactory (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< ManagedEpetraMatrix > | getEpetraMatrix (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 |
| using AMP::LinearAlgebra::built_configs = typedef detail::built_configs |
Definition at line 376 of file CSRConfig.h.
| using AMP::LinearAlgebra::config_mode_t = typedef typename config_mode<mode>::type |
Definition at line 356 of file CSRConfig.h.
| using AMP::LinearAlgebra::DefaultCSRConfig = typedef CSRConfig<Alloc, index::i32, index::i64, scalar::f64> |
Definition at line 412 of file CSRConfig.h.
| using AMP::LinearAlgebra::DefaultHostCSRConfig = typedef DefaultCSRConfig<alloc::host> |
Definition at line 413 of file CSRConfig.h.
|
strong |
| Enumerator | |
|---|---|
| host | |
| device | |
| managed | |
Definition at line 20 of file CSRConfig.h.
|
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.
|
strong |
| Enumerator | |
|---|---|
| i32 | |
| i64 | |
| ill | |
Definition at line 21 of file CSRConfig.h.
|
strong |
| Enumerator | |
|---|---|
| f32 | |
| f64 | |
| fld | |
Definition at line 22 of file CSRConfig.h.
|
strong |
Flag to choose algorithm for makeConsistent.
| Enumerator | |
|---|---|
| CONSISTENT_ADD | |
| CONSISTENT_SET | |
Definition at line 21 of file Variable.h.
|
strong |
The four states a Vector can be in.
| Enumerator | |
|---|---|
| UNCHANGED | |
| LOCAL_CHANGED | |
| ADDING | |
| SETTING | |
| MIXED | |
Definition at line 26 of file Variable.h.
| 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.
| localSize | The number of elements in the vector on this processor |
| blockIndex | The block index for the current rank |
| comm | The communicator for the vector |
| var | The variable associated with the new vector |
| Vector::shared_ptr AMP::LinearAlgebra::createArrayVector | ( | const ArraySize & | localSize, |
| const std::string & | var | ||
| ) |
Create a ArrayVector.
This is the factory method for the ArrayVector.
| localSize | The number of elements in the vector on this processor |
| var | The variable name for the new vector |
| 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.
| localSize | The number of elements in the vector on this processor |
| var | The variable associated with the new vector |
| 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.
| [in] | commList | Communication list |
| [in] | DOFs | DOF manager |
| [in] | p | Optional VectorData object |
| 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
| right | Vector that will be used to create the matrix The right is x in the expression y = A*x. |
| left | Vector that will be used to create the matrix. The left is y in the expression y = A*x. |
| accelerationBackend | Backend used for matrix operations. |
| type | Type of matrix to build: auto: Automatically determined based on build (default) ManagedPetscMatrix ManagedEpetraMatrix DenseSerialMatrix |
| getColumnIDs | Function 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. |
| 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
| right | Vector that will be used to create the matrix The right is x in the expression y = A*x. |
| left | Vector that will be used to create the matrix. The left is y in the expression y = A*x. |
| type | Type of matrix to build: auto: Automatically determined based on build (default) ManagedPetscMatrix ManagedEpetraMatrix DenseSerialMatrix |
| getColumnIDs | Function 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. |
Create a matrix from an arbitrary PETSc Mat.
This function creates a matrix from an arbitrary PETSc Mat
| [in] | M | PETSc Mat |
| [in] | deleteable | If true, ~Matrix() will call MatDestroy() |
| std::shared_ptr< AMP::LinearAlgebra::Matrix > AMP::LinearAlgebra::createMatrix | ( | std::shared_ptr< AMP::LinearAlgebra::Matrix > | matrix | ) |
| std::shared_ptr< AMP::LinearAlgebra::Matrix > AMP::LinearAlgebra::createMatrix | ( | std::shared_ptr< AMP::LinearAlgebra::Matrix > | matrix, |
| AMP::Utilities::Backend | accelerationBackend | ||
| ) |
| std::shared_ptr< AMP::LinearAlgebra::Matrix > AMP::LinearAlgebra::createMatrix | ( | std::shared_ptr< AMP::LinearAlgebra::Matrix > | matrix, |
| AMP::Utilities::MemoryType | memType | ||
| ) |
| std::shared_ptr< AMP::LinearAlgebra::Matrix > AMP::LinearAlgebra::createMatrix | ( | std::shared_ptr< AMP::LinearAlgebra::Matrix > | matrix, |
| AMP::Utilities::MemoryType | memType, | ||
| AMP::Utilities::Backend | accelerationBackend | ||
| ) |
| std::unique_ptr< MATRIXDATA > AMP::LinearAlgebra::createMatrixDataFromRestart | ( | int64_t | fid, |
| AMP::IO::RestartManager * | manager | ||
| ) |
Definition at line 17 of file MatrixDataFactory.h.
| std::unique_ptr< MATRIX > AMP::LinearAlgebra::createMatrixFromRestart | ( | int64_t | fid, |
| AMP::IO::RestartManager * | manager | ||
| ) |
Definition at line 17 of file MatrixFactory.h.
| std::unique_ptr< VECTOROPERATIONS > AMP::LinearAlgebra::createMatrixOperationsFromRestart | ( | int64_t | fid, |
| AMP::IO::RestartManager * | manager | ||
| ) |
Definition at line 18 of file MatrixOperationsFactory.h.
| std::unique_ptr< MATRIXPARAMETERS > AMP::LinearAlgebra::createMatrixParametersFromRestart | ( | int64_t | fid, |
| AMP::IO::RestartManager * | manager | ||
| ) |
Definition at line 18 of file MatrixParametersFactory.h.
| Vector::shared_ptr AMP::LinearAlgebra::createSimpleVector | ( | size_t | localSize, |
| const std::string & | var | ||
| ) |
| Vector::shared_ptr AMP::LinearAlgebra::createSimpleVector | ( | size_t | localSize, |
| std::shared_ptr< Variable > | var | ||
| ) |
| Vector::shared_ptr AMP::LinearAlgebra::createSimpleVector | ( | size_t | localSize, |
| std::shared_ptr< Variable > | var, | ||
| AMP_MPI | comm | ||
| ) |
| Vector::shared_ptr AMP::LinearAlgebra::createSimpleVector | ( | std::shared_ptr< Variable > | var, |
| std::shared_ptr< AMP::Discretization::DOFManager > | DOFs, | ||
| std::shared_ptr< CommunicationList > | commlist | ||
| ) |
| 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.
| [in] | commList | Communication list |
| [in] | DOFs | DOF manager |
| [in] | p | Optional VectorData object |
| 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.
| 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.
| [in] | DOFs | DOFManager to use for constucting the vector |
| [in] | variable | Variable for the vector |
| [in] | split | If we are given a multiDOFManager, do we want to split the vector based on the individual DOFManagers to create a MultiVector |
| [in] | memType | Memory space in which to create vector |
| 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.
| [in] | DOFs | DOFManager to use for constucting the vector |
| [in] | variable | Variable for the vector |
| [in] | split | If we are given a multiDOFManager, do we want to split the vector based on the individual DOFManagers to create a MultiVector |
| [in] | memType | Memory space in which to create vector |
| [in] | backend | Backend for operations |
| 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.
| [in] | DOFs | DOFManager to use for constucting the vector |
| [in] | variable | Variable for the vector |
| [in] | split | If 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().
| 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.
| [in] | vector | Vector we want to mimic |
| [in] | memType | Memory space in which to create vector |
| 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.
| [in] | vector | Vector we want to mimic |
| [in] | memType | Memory space in which to create vector |
| [in] | backend | Backend for operations |
| 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.
| [in] | vector | Vector we want to mimic |
| [in] | memType | Memory space in which to create vector |
| 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.
| [in] | vector | Vector we want to mimic |
| [in] | memType | Memory space in which to create vector |
| [in] | backend | Backend for operations |
| 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.
| std::unique_ptr< VECTORDATA > AMP::LinearAlgebra::createVectorDataFromRestart | ( | int64_t | fid, |
| AMP::IO::RestartManager * | manager | ||
| ) |
Definition at line 17 of file VectorDataFactory.h.
| std::unique_ptr< VECTOR > AMP::LinearAlgebra::createVectorFromRestart | ( | int64_t | fid, |
| AMP::IO::RestartManager * | manager | ||
| ) |
Definition at line 17 of file VectorFactory.h.
| std::unique_ptr< VECTOROPERATIONS > AMP::LinearAlgebra::createVectorOperationsFromRestart | ( | int64_t | fid, |
| AMP::IO::RestartManager * | manager | ||
| ) |
Definition at line 18 of file VectorOperationsFactory.h.
| AMP::LinearAlgebra::csr_visitor | ( | csr_mode | , |
| std::shared_ptr< Matrix > | , | ||
| F | |||
| ) | -> csr_visitor< F > |
| 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.
| auto AMP::LinearAlgebra::csrVisit | ( | std::shared_ptr< Matrix > | mat, |
| F && | f | ||
| ) |
Helper to recover a CSR matrix type from a type erased Matrix pointer
| [in] | mat | Generic matrix pointer |
| [in] | f | Callable that will be invoked with the CSR Matrix pointer |
Definition at line 106 of file CSRVisit.h.
| void AMP::LinearAlgebra::fillWithPseudoLaplacian | ( | std::shared_ptr< AMP::LinearAlgebra::Matrix > | matrix | ) |
| std::shared_ptr< VectorFactory > AMP::LinearAlgebra::generateVectorFactory | ( | const std::string & | factory | ) |
Generate the desired vector factory.
This will generate the desired vector factory
| [in] | factory | The 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; |
|
inline |
Definition at line 345 of file CSRConfig.h.
Referenced by AMP::LinearAlgebra::csr_visitor< F >::operator()(), and AMP::LinearAlgebra::csr_construct< T >::operator()().
| auto AMP::LinearAlgebra::get_from_mode | ( | csr_mode | mode | ) |
Definition at line 340 of file CSRConfig.h.
|
inline |
Definition at line 347 of file CSRConfig.h.
Referenced by AMP::LinearAlgebra::csr_visitor< F >::check_gidx(), and AMP::LinearAlgebra::csr_construct< T >::check_gidx().
|
inline |
Definition at line 346 of file CSRConfig.h.
Referenced by AMP::LinearAlgebra::csr_visitor< F >::check_lidx(), and AMP::LinearAlgebra::csr_construct< T >::check_lidx().
|
inline |
Definition at line 348 of file CSRConfig.h.
Referenced by AMP::LinearAlgebra::csr_visitor< F >::check_scalar(), and AMP::LinearAlgebra::csr_construct< T >::check_scalar().
| std::vector< std::string > AMP::LinearAlgebra::getAllFactories | ( | ) |
Get the valid vector factories.
This will generate a list of all valid factories to test
| std::vector< std::string > AMP::LinearAlgebra::getArrayVectorFactories | ( | ) |
Get the valid vector factories.
This will generate a list of valid ArrayVector factories to test
|
static |
Definition at line 415 of file CSRMatrixData.h.
References AMP_INSIST.
|
static |
Definition at line 407 of file CSRMatrixData.h.
References AMP_INSIST.
| std::string AMP::LinearAlgebra::getDefaultMatrixType | ( | ) |
Return the default matrix type.
| std::shared_ptr< Epetra_Vector > AMP::LinearAlgebra::getEpetra | ( | std::shared_ptr< Vector > | vec | ) |
| std::shared_ptr< ManagedEpetraMatrix > AMP::LinearAlgebra::getEpetraMatrix | ( | std::shared_ptr< Matrix > | mat | ) |
| std::vector< std::string > AMP::LinearAlgebra::getManagedVectorFactories | ( | ) |
Get the valid vector factories.
This will generate a list of valid managed vector factories to test
| std::vector< std::string > AMP::LinearAlgebra::getMeshVectorFactories | ( | ) |
Get the valid vector factories.
This will generate a list of valid mesh vector factories to test
| std::vector< std::string > AMP::LinearAlgebra::getNativeVectorFactories | ( | ) |
Get the valid vector factories.
This will generate a list of valid native factories to test
| std::vector< std::string > AMP::LinearAlgebra::getSimpleVectorFactories | ( | ) |
Get the valid vector factories.
This will generate a list of valid SimpleVector factories to test
| std::shared_ptr< Tpetra::Vector<> > AMP::LinearAlgebra::getTpetra | ( | std::shared_ptr< Vector > | vec | ) |
|
inline |
Definition at line 390 of file CSRConfig.h.
References CSR_CONFIG_FORALL, and X.
| AMP::LinearAlgebra::Vector::shared_ptr AMP::LinearAlgebra::joinVectors | ( | AMP::LinearAlgebra::Vector::shared_ptr | vec1, |
| AMP::LinearAlgebra::Vector::shared_ptr | vec2 | ||
| ) |
| std::ostream & AMP::LinearAlgebra::operator<< | ( | std::ostream & | out, |
| const Matrix & | p | ||
| ) |
Referenced by operator<<().
| std::ostream & AMP::LinearAlgebra::operator<< | ( | std::ostream & | out, |
| const Vector & | |||
| ) |
Stream operator.
| std::ostream & AMP::LinearAlgebra::operator<< | ( | std::ostream & | out, |
| const Vector::shared_ptr | |||
| ) |
Stream operator.
|
inline |
Definition at line 451 of file Matrix.h.
References operator<<().
| AMP::LinearAlgebra::Vector::shared_ptr AMP::LinearAlgebra::subsetExceptForVariable | ( | AMP::LinearAlgebra::Vector::shared_ptr | inVec, |
| std::shared_ptr< AMP::LinearAlgebra::Variable > | var | ||
| ) |
| void AMP::LinearAlgebra::test_matrix_loop | ( | AMP::UnitTest & | ut, |
| std::shared_ptr< MatrixFactory > | factory, | ||
| std::shared_ptr< MatrixFactory > | copy_factory = nullptr |
||
| ) |
| void AMP::LinearAlgebra::test_matrix_loop | ( | AMP::UnitTest & | ut, |
| std::shared_ptr< MatrixTests > | tests | ||
| ) |
| void AMP::LinearAlgebra::testBasics | ( | AMP::UnitTest & | ut, |
| const std::string & | type | ||
| ) |
| 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.
|
constexpr |
Definition at line 327 of file CSRConfig.h.
|
constexpr |
Definition at line 333 of file CSRConfig.h.
|
constexpr |
Definition at line 330 of file CSRConfig.h.
|
constexpr |
Definition at line 336 of file CSRConfig.h.
|
constexpr |
Definition at line 388 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 Last updated: Tue Mar 10 2026 13:06:42. Comments on this page |