Advanced Multi-Physics (AMP)
On-Line Documentation
GetRowHelper.h
Go to the documentation of this file.
1#ifndef included_AMP_Matrix_GetRowHelper
2#define included_AMP_Matrix_GetRowHelper
3
4#include "AMP/discretization/DOF_Manager.h"
5
6#include <array>
7#include <memory>
8#include <vector>
9
10
11namespace AMP::LinearAlgebra {
12
13
14class GetRowHelper final
15{
16public:
22 GetRowHelper( std::shared_ptr<const AMP::Discretization::DOFManager> leftDOF,
23 std::shared_ptr<const AMP::Discretization::DOFManager> rightDOF );
24
27
28 // Copy/assignment operators
29 GetRowHelper() = default;
30 GetRowHelper( GetRowHelper && ) = default;
31 GetRowHelper( const GetRowHelper & ) = delete;
33 GetRowHelper &operator=( const GetRowHelper & ) = delete;
34
36 void deallocate();
37
42 std::array<size_t, 2> NNZ( size_t row ) const;
43
50 template<class INT>
51 void NNZ( size_t row, INT &N_local, INT &N_remote ) const;
52
59 template<class INT>
60 void getRow( size_t row, INT *local, INT *remote ) const;
61
62 const size_t *getLocals() const { return d_local; }
63
64 const size_t *getRemotes() const { return d_remote; }
65
66private: // Private routines
67 std::array<size_t *, 2> getRow2( size_t row ) const;
68 void reserve( size_t N );
69
70
71private: // Member data
72 bool d_hasFields = true;
73 std::array<size_t, 2> *d_NNZ = nullptr;
74 size_t *d_local = nullptr;
75 size_t *d_remote = nullptr;
76 size_t *d_localOffset = nullptr;
77 size_t *d_remoteOffset = nullptr;
78 size_t d_size[2] = { 0, 0 };
79 size_t d_capacity[2] = { 0, 0 };
80 std::shared_ptr<const AMP::Discretization::DOFManager> d_leftDOF;
81 std::shared_ptr<const AMP::Discretization::DOFManager> d_rightDOF;
82};
83
84
85} // namespace AMP::LinearAlgebra
86
87#include "AMP/matrices/GetRowHelper.hpp"
88
89#endif
GetRowHelper & operator=(GetRowHelper &&)=default
std::shared_ptr< const AMP::Discretization::DOFManager > d_rightDOF
GetRowHelper(const GetRowHelper &)=delete
void getRow(size_t row, INT *local, INT *remote) const
Get the row.
void deallocate()
Release all internal storage.
const size_t * getLocals() const
const size_t * getRemotes() const
void NNZ(size_t row, INT &N_local, INT &N_remote) const
Get the number of non-zeros.
GetRowHelper(std::shared_ptr< const AMP::Discretization::DOFManager > leftDOF, std::shared_ptr< const AMP::Discretization::DOFManager > rightDOF)
Construct GetRowHelper.
GetRowHelper(GetRowHelper &&)=default
std::shared_ptr< const AMP::Discretization::DOFManager > d_leftDOF
std::array< size_t *, 2 > getRow2(size_t row) const
std::array< size_t, 2 > NNZ(size_t row) const
Get the number of non-zeros.
std::array< size_t, 2 > * d_NNZ
GetRowHelper & operator=(const GetRowHelper &)=delete



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:40.
Comments on this page