|
TpsaMatrix.hpp
Go to the documentation of this file.
139 std::size_t k_{0};
void gather(MatrixBlock &b) const Gather the stored entries into a dense 7x7 block. TpsaBlockRef & operator=(Scalar value) Set every stored entry of this block to a scalar. TpsaBlockRef(const TpsaMatrix< Scalar > &matrix, std::size_t flatIdx) Construct a handle on one block of a TPSA matrix. Definition: TpsaMatrix.hpp:70 TpsaBlockRef & operator*() Dereference the handle, so that it can be used where a pointer to a block is expected. Definition: TpsaMatrix.hpp:82 TpsaBlockRef()=default Construct a handle that does not refer to any block. TpsaBlockRef & operator=(const MatrixBlock &b) Overwrite the stored entries with a dense 7x7 block. TpsaBlockRef & operator+=(const MatrixBlock &b) Scatter a dense 7x7 contribution into the sub-matrices. IstlMatrix & istlMatrix() The sub-matrix view the linear solver operates on. Definition: TpsaMatrix.hpp:380 void scaleFields(const std::array< Scalar, numTpsaFields > &rowFac, const std::array< Scalar, numTpsaFields > &colFac) Scale the system by one factor per field: A <- D_row * A * D_col. RotRotMatrixT< Scalar > & rr() Access the rotation-rotation sub-matrix. Definition: TpsaMatrix.hpp:471 std::size_t rows() const Number of block rows. Definition: TpsaMatrix.hpp:396 std::size_t cols() const Number of block columns. Definition: TpsaMatrix.hpp:406 TpsaMatrix(std::size_t rows, std::size_t columns) Construct a matrix of the given block dimensions. Definition: TpsaMatrix.hpp:187 DispDispMatrix00T< Scalar > & dd00() Access the u_x-u_x sub-matrix. Definition: TpsaMatrix.hpp:441 void finalize() The structure is already solver-ready after reserve(). Definition: TpsaMatrix.hpp:369 const RotRotMatrixT< Scalar > & rr() const Access the rotation-rotation sub-matrix. Definition: TpsaMatrix.hpp:505 TpsaMatrix(TpsaMatrix &&)=delete TpsaMatrix & operator=(TpsaMatrix &&)=delete void addToBlock(const std::size_t rowIdx, const std::size_t colIdx, const MatrixBlock &value) Add a dense 7x7 block to the given block. Definition: TpsaMatrix.hpp:358 std::size_t nonzeroes() const Number of nonzero blocks in the shared sparsity pattern. Definition: TpsaMatrix.hpp:428 DispDispMatrix11T< Scalar > & dd11() Access the u_y-u_y sub-matrix. Definition: TpsaMatrix.hpp:451 TpsaMatrix & operator=(const TpsaMatrix &)=delete TpsaMatrix(const TpsaMatrix &)=delete const DispDispMatrix00T< Scalar > & dd00() const Access the u_x-u_x sub-matrix. Definition: TpsaMatrix.hpp:487 BlockAddress blockAddress(const std::size_t rowIdx, const std::size_t colIdx) const Handle on the block at (rowIdx, colIdx). Definition: TpsaMatrix.hpp:275 TpsaBlockRef< Scalar > BlockAddress What blockAddress() returns. Definition: TpsaMatrix.hpp:174 void block(const std::size_t rowIdx, const std::size_t colIdx, MatrixBlock &value) const Fill value with the stored entries of the given block. Definition: TpsaMatrix.hpp:332 void commit() No local caching, so nothing to commit. Definition: TpsaMatrix.hpp:364 void clearRow(const std::size_t row, const Scalar diag=1.0) Set the given row to zero, except for the main diagonal. const SPresSPresMatrixT< Scalar > & spsp() const Access the solid pressure-solid pressure sub-matrix. Definition: TpsaMatrix.hpp:511 std::size_t M() const Number of block columns. Definition: TpsaMatrix.hpp:418 void setBlock(const std::size_t rowIdx, const std::size_t colIdx, const MatrixBlock &value) Overwrite the given block with a dense 7x7 block. Definition: TpsaMatrix.hpp:345 DispDispMatrix22T< Scalar > & dd22() Access the u_z-u_z sub-matrix. Definition: TpsaMatrix.hpp:461 TpsaMatrix(const Simulator &simulator) Construct a square matrix sized from a simulator's degrees of freedom. Definition: TpsaMatrix.hpp:202 const DispDispMatrix22T< Scalar > & dd22() const Access the u_z-u_z sub-matrix. Definition: TpsaMatrix.hpp:499 void makeOverlapRowsInvalid(const std::vector< int > &overlapRows) Zero out the overlap rows and put the identity on their diagonal. Scalar field_type Field type of the matrix entries. Definition: TpsaMatrix.hpp:177 const IstlMatrix & istlMatrix() const The sub-matrix view the linear solver operates on. Definition: TpsaMatrix.hpp:386 TpsaMatrixView< Scalar > IstlMatrix What the linear solver operates on. Definition: TpsaMatrix.hpp:168 void reserve(const std::vector< Set > &sparsityPattern) Allocate all sub-matrices from a common sparsity pattern. Definition: TpsaMatrix.hpp:229 const DispDispMatrix11T< Scalar > & dd11() const Access the u_y-u_y sub-matrix. Definition: TpsaMatrix.hpp:493 SPresSPresMatrixT< Scalar > & spsp() Access the solid pressure-solid pressure sub-matrix. Definition: TpsaMatrix.hpp:481 Lightweight, non-owning 5x5 view over the sub-matrices owned by TpsaMatrix. Provides the operator int... Definition: TpsaTypes.hpp:136 Definition: matrixblock.hh:256 Manages the initializing and running of time dependent problems. Definition: simulator.hh:84 Definition: bicgstabsolver.hh:42 Dune::BCRSMatrix< MatrixBlock< Scalar, numRotDofs, numRotDofs > > RotRotMatrixT Definition: TpsaTypes.hpp:62 Dune::BCRSMatrix< MatrixBlock< Scalar, numSolidPresDofs, numSolidPresDofs > > SPresSPresMatrixT Definition: TpsaTypes.hpp:64 Dune::BCRSMatrix< MatrixBlock< Scalar, numDispDofs, numDispDofs > > DispDispMatrix11T Definition: TpsaTypes.hpp:58 Dune::BCRSMatrix< MatrixBlock< Scalar, numDispDofs, numDispDofs > > DispDispMatrix22T Definition: TpsaTypes.hpp:60 Dune::BCRSMatrix< MatrixBlock< Scalar, numDispDofs, numDispDofs > > DispDispMatrix00T Definition: TpsaTypes.hpp:56 |