44 #ifndef Foam_MatrixSpace_H 45 #define Foam_MatrixSpace_H 58 template<
class Form,
class Cmpt, direction Mrows, direction Ncols>
98 template<
class SubTensor, direction BRowStart, direction BColStart>
169 template<
class Form2>
170 inline void operator=
182 template<
class VSForm>
183 inline void operator=
215 template<
class Form2,
class Cmpt2>
224 template<
class, direction, direction>
class Block2,
230 const Block2<Form, BRowStart, BColStart>&
block 240 template<direction Row, direction Col>
251 const Cmpt&
xx() const
noexcept {
return elmt<0,0>(); }
252 const Cmpt&
xy() const
noexcept {
return elmt<0,1>(); }
253 const Cmpt&
xz() const
noexcept {
return elmt<0,2>(); }
254 const Cmpt&
yx() const
noexcept {
return elmt<1,0>(); }
255 const Cmpt&
yy() const
noexcept {
return elmt<1,1>(); }
256 const Cmpt&
yz() const
noexcept {
return elmt<1,2>(); }
257 const Cmpt&
zx() const
noexcept {
return elmt<2,0>(); }
258 const Cmpt&
zy() const
noexcept {
return elmt<2,1>(); }
259 const Cmpt&
zz() const
noexcept {
return elmt<2,2>(); }
281 template<
class SubTensor, direction BRowStart, direction BColStart>
282 inline ConstBlock<SubTensor, BRowStart, BColStart>
block()
const;
286 template<
class SubTensor, direction BRowStart, direction BColStart>
287 inline Block<SubTensor, BRowStart, BColStart>
block();
308 template<
class, direction, direction>
class Block2,
312 inline void operator=
314 const Block2<Form, BRowStart, BColStart>&
block 318 template<
class Form2>
319 inline void operator&=
static direction m()
Return the number of rows in the block.
static direction n() noexcept
The number of columns.
Block(msType &matrix)
Construct for the given matrix.
const Cmpt & operator()(const direction &i, const direction &j) const
(i, j) const element access operator
ConstBlock(const msType &matrix)
Construct for the given matrix.
const Cmpt & xy() const noexcept
static const direction nCols
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
SubTensor operator()() const
Construct and return the sub-tensor corresponding to this block.
MatrixSpace< Form, Cmpt, Mrows, Ncols > msType
MatrixSpace type.
void operator=(const Foam::zero)
Assignment to zero.
typeOfTranspose< Cmpt, Form >::type T() const
Return the transpose of the matrix.
const Cmpt & zy() const noexcept
static direction n()
Return the number of columns in the block.
static const direction mRows
const Cmpt & zx() const noexcept
static constexpr direction nCols
static direction m() noexcept
The number of rows.
const Cmpt & yx() const noexcept
static constexpr direction mRows
const Cmpt & xz() const noexcept
static const direction mRows
static const direction nCols
ConstBlock< SubTensor, BRowStart, BColStart > block() const
Return a const sub-block corresponding to the specified type.
Creates a single block of cells from point coordinates, numbers of cells in each direction and an exp...
const Cmpt & elmt() const noexcept
Fast const element access using compile-time addressing.
const Cmpt & yy() const noexcept
friend Ostream & operator(Ostream &, const VectorSpace< Form, Cmpt, Ncmpts > &)
static direction m()
The number of rows in the block.
const Cmpt & zz() const noexcept
MatrixSpace()=default
Default construct.
SubTensor operator()() const
Construct and return the sub-tensor corresponding to this block.
const Cmpt & xx() const noexcept
const Cmpt & yz() const noexcept
A class representing the concept of 0 (zero) that can be used to avoid manipulating objects known to ...
static direction n()
The number of columns in the block.
static msType identity()
An identity matrix for square matrix-spaces.