Loading...
Searching...
No Matches
stencil_solver.hpp
60class DiscretizationStencilProxyBaseStorage : public DiscretizationStencilStorageInterface<stencil_t> {
71class DiscretizationStencilProxyStorage : public DiscretizationStencilProxyBaseStorage<stencil_t, stencil_container_t> {
87class DiscretizationStencilProxyStorage<stencil_t, PiercedStorage<stencil_t>> : public DiscretizationStencilProxyBaseStorage<stencil_t, PiercedStorage<stencil_t>> {
113 DiscretizationStencilSolverAssembler(const stencil_container_t *stencils, AssemblerKernelArgs&&... assemblerKernelArgs);
116 DiscretizationStencilSolverAssembler(MPI_Comm communicator, bool partitioned, const stencil_container_t *stencils,
154 void getRowData(long rowIndex, ConstProxyVector<long> *pattern, ConstProxyVector<double> *values) const override;
180 DiscretizationStencilSolverAssembler(std::unique_ptr<DiscretizationStencilStorageInterface<stencil_t>> &&stencils,
199 template<typename W = stencil_weight_type, typename V = stencil_value_type, typename std::enable_if<std::is_fundamental<W>::value>::type * = nullptr>
201 template<typename W = stencil_weight_type, typename V = stencil_value_type, std::size_t D = std::tuple_size<W>::value, typename std::enable_if<std::is_same<std::array<V, D>, W>::value>::type * = nullptr>
203 template<typename W = stencil_weight_type, typename V = stencil_value_type, typename std::enable_if<std::is_same<std::vector<V>, W>::value>::type * = nullptr>
214 template<typename W = stencil_weight_type, typename std::enable_if<std::is_fundamental<W>::value>::type * = nullptr>
217 template<typename W = stencil_weight_type, typename std::enable_if<!std::is_fundamental<W>::value>::type * = nullptr>
220 template<typename W = stencil_weight_type, typename std::enable_if<std::is_fundamental<W>::value>::type * = nullptr>
DiscretizationStencilProxyBaseStorage(const stencil_container_t *stencils, int stride)
Definition stencil_solver.tpp:54
DiscretizationStencilProxyStorage(const PiercedStorage< stencil_t > *stencils)
Definition stencil_solver.tpp:138
const stencil_t & rawAt(std::size_t rowRawIndex) const override
Definition stencil_solver.tpp:101
const stencil_t & at(long rowIndex) const override
Definition stencil_solver.tpp:89
std::size_t size() const override
Definition stencil_solver.tpp:77
DiscretizationStencilProxyStorage(const stencil_container_t *stencils)
Definition stencil_solver.tpp:66
The DiscretizationStencilSolverAssembler class defines an assembler for building the stencil solver.
Definition stencil_solver.hpp:103
long getRowNZCount(long rowIndex) const override
Definition stencil_solver.tpp:775
virtual void getRowConstant(long rowIndex, bitpit::ConstProxyVector< double > *constant) const
Definition stencil_solver.tpp:932
void setMatrixSizes(long nRows, long nCols)
Definition stencil_solver.tpp:514
void getRowValues(long rowIndex, ConstProxyVector< double > *values) const override
Definition stencil_solver.tpp:844
DiscretizationStencilSolverAssembler(MPI_Comm communicator, bool partitioned, const stencil_container_t *stencils, AssemblerKernelArgs &&... assemblerKernelArgs)
Definition stencil_solver.tpp:239
DiscretizationStencilSolverAssembler(AssemblerKernelArgs &&... assemblerKernelArgs)
Definition stencil_solver.tpp:326
void getRowPattern(long rowIndex, ConstProxyVector< long > *pattern) const override
Definition stencil_solver.tpp:806
long getRowGlobalCount() const override
Definition stencil_solver.tpp:661
void setStencils(std::unique_ptr< DiscretizationStencilStorageInterface< stencil_t > > &&stencils)
Definition stencil_solver.tpp:493
long getColElementCount() const override
Definition stencil_solver.tpp:643
long getColGlobalElementOffset() const override
Definition stencil_solver.tpp:760
void setBlockSize()
Definition stencil_solver.tpp:416
int getBlockSize() const override
Definition stencil_solver.tpp:583
void setMaximumRowNZ(long maxRowNZ)
Definition stencil_solver.tpp:572
long getMaxRowNZCount() const override
Definition stencil_solver.tpp:789
DiscretizationStencilSolverAssembler(const stencil_container_t *stencils, AssemblerKernelArgs &&... assemblerKernelArgs)
Definition stencil_solver.tpp:222
long getRowGlobalElementCount() const override
Definition stencil_solver.tpp:690
void setBlockSize(int blockSize)
Definition stencil_solver.tpp:482
long getRowElementCount() const override
Definition stencil_solver.tpp:627
void getValues(const stencil_t &stencil, ConstProxyVector< double > *values) const
Definition stencil_solver.tpp:863
long getColCount() const override
Definition stencil_solver.tpp:613
void setMatrixSizes()
Definition stencil_solver.tpp:502
void getRowData(long rowIndex, ConstProxyVector< long > *pattern, ConstProxyVector< double > *values) const override
Definition stencil_solver.tpp:911
long getRowGlobalOffset() const override
Definition stencil_solver.tpp:719
long getRowGlobalElementOffset() const override
Definition stencil_solver.tpp:744
long getColGlobalOffset() const override
Definition stencil_solver.tpp:730
DiscretizationStencilSolverAssembler(MPI_Comm communicator, bool partitioned, std::unique_ptr< DiscretizationStencilStorageInterface< stencil_t > > &&stencils, AssemblerKernelArgs &&... assemblerKernelArgs)
Definition stencil_solver.tpp:292
long getRowCount() const override
Definition stencil_solver.tpp:598
const MPI_Comm & getCommunicator() const override
Definition stencil_solver.tpp:380
long getColGlobalElementCount() const override
Definition stencil_solver.tpp:706
void getPattern(const stencil_t &stencil, ConstProxyVector< long > *pattern) const
Definition stencil_solver.tpp:822
assembly_options_type getOptions() const override
Definition stencil_solver.tpp:392
virtual const stencil_t & getRowStencil(long rowIndex) const
Definition stencil_solver.tpp:993
bool isPartitioned() const override
Definition stencil_solver.tpp:369
void getConstant(const stencil_t &stencil, bitpit::ConstProxyVector< double > *constant) const
Definition stencil_solver.tpp:951
DiscretizationStencilSolverAssembler(MPI_Comm communicator, bool partitioned, AssemblerKernelArgs &&... assemblerKernelArgs)
Definition stencil_solver.tpp:341
DiscretizationStencilSolverAssembler(std::unique_ptr< DiscretizationStencilStorageInterface< stencil_t > > &&stencils, AssemblerKernelArgs &&... assemblerKernelArgs)
Definition stencil_solver.tpp:275
void setMaximumRowNZ()
Definition stencil_solver.tpp:556
void setBlockSize()
Definition stencil_solver.tpp:406
long getColGlobalCount() const override
Definition stencil_solver.tpp:676
void matrixAssembly(const Assembler &assembler)
Definition stencil_solver.tpp:1084
void assembleConstants(const Assembler &assembler)
Definition stencil_solver.tpp:1199
void matrixUpdate(long nRows, const long *rows, const Assembler &assembler)
Definition stencil_solver.tpp:1110
void assembly(const stencil_container_t &stencils)
Definition stencil_solver.tpp:1027
void assembly(MPI_Comm communicator, bool partitioned, const stencil_container_t &stencils)
Definition stencil_solver.tpp:1041
void update(const stencil_container_t &stencils)
Definition stencil_solver.tpp:1129
void update(long nRows, const long *rows, const Assembler &assembler)
Definition stencil_solver.tpp:1188
void update(std::size_t nRows, const long *rows, const stencil_container_t &stencils)
Definition stencil_solver.tpp:1164
void update(const std::vector< long > &rows, const stencil_container_t &stencils)
Definition stencil_solver.tpp:1145
void updateConstants(std::size_t nRows, const long *rows, const Assembler &assembler)
Definition stencil_solver.tpp:1221
void assembly(const Assembler &assembler)
Definition stencil_solver.tpp:1073
The DiscretizationStencilStorageInterface class defines the interface for stencil storage.
Definition stencil_solver.hpp:41
Metafunction for generating a pierced storage.
Definition piercedStorage.hpp:146
