90 template <
class Block>
92 assemble(::std::size_t ndof,
95 ISTLTypeDetails::ScalarBlockVector& vec ) {
96 assert (ndof == 1); (void) ndof;
98 ISTLTypeDetails::ScalarBlockVector::block_type blk(b[0]);
109 assign(
const ISTLTypeDetails::ScalarBlockVector& x,
110 ISTLTypeDetails::ScalarBlockVector& y) {
115 template <
class Scalar>
117 assign(
const Scalar& a,
118 const ISTLTypeDetails::ScalarBlockVector& x,
119 ISTLTypeDetails::ScalarBlockVector& y) {
135 class MatrixBlockAssembler<ISTLTypeDetails::ScalarBCRSMatrix>
138 template <
class Block>
140 assembleBlock(
size_t ndof,
size_t i,
size_t j,
const Block& b) {
141 assert (ndof == 1); (void) ndof;
143 ISTLTypeDetails::ScalarBCRSMatrix::block_type blk(b[0]);
148 template <
class Connections>
150 createBlockRow(
size_t i,
const Connections& conn,
size_t ndof) {
151 assert (ndof == 1); (void) ndof;
152 assert (i == i_prev_ + 1); (void) i ;
154 ISTLTypeDetails::ScalarBCRSMatrix::CreateIterator ci(mat_, i);
156 for (
typename Connections::const_iterator
157 c = conn.begin(), e = conn.end(); c != e; ++c) {
166 finalizeStructure() {}
169 setSize(::std::size_t ndof,
172 ::std::size_t nnz = 0) {
174 assert (ndof == 1); (void) ndof;
177 mat_.setSize (nrow, ncol);
178 mat_.setBuildMode(ISTLTypeDetails::ScalarBCRSMatrix::row_wise);
183 const ISTLTypeDetails::ScalarBCRSMatrix&
184 matrix()
const {
return mat_; }
186 ISTLTypeDetails::ScalarBCRSMatrix&
187 matrix() {
return mat_; }
190 ::std::size_t i_prev_;
191 ISTLTypeDetails::ScalarBCRSMatrix mat_ ;