59 class ALIEN_EXPORT ProfiledFixedBlockMatrixBuilder
65 MatrixElement(
const Integer iIndex,
const Integer jIndex,
66 ProfiledFixedBlockMatrixBuilder& parent)
72 inline void operator+=(ConstArray2View<Real> value)
74 m_parent.addData(m_iIndex, m_jIndex, value);
77 inline void operator-=(ConstArray2View<Real> value)
79 m_parent.addData(m_iIndex, m_jIndex, -1., value);
82 inline void operator=(ConstArray2View<Real> value)
84 m_parent.setData(m_iIndex, m_jIndex, value);
88 const Integer m_iIndex;
89 const Integer m_jIndex;
90 ProfiledFixedBlockMatrixBuilder& m_parent;
94 using ResetFlag = ProfiledBlockMatrixBuilderOptions::ResetFlag;
96 ProfiledFixedBlockMatrixBuilder(
IMatrix& matrix,
const ResetFlag reset_values);
98 virtual ~ProfiledFixedBlockMatrixBuilder();
101 ProfiledFixedBlockMatrixBuilder(
const ProfiledFixedBlockMatrixBuilder&);
104 inline MatrixElement operator()(
const Integer iIndex,
const Integer jIndex)
109 void addData(
const Integer iIndex,
const Integer jIndex, ConstArray2View<Real> value);
111 void addData(
const Integer iIndex,
const Integer jIndex,
const Real factor,
112 ConstArray2View<Real> value);
114 void setData(
const Integer iIndex,
const Integer jIndex, ConstArray2View<Real> value);
119 bool isLocal(Integer jIndex)
121 return (jIndex >= m_local_offset) && (jIndex < m_next_offset);
127 Integer m_local_offset;
128 Integer m_next_offset;
129 Integer m_local_size;
130 Integer m_block_size;
131 ConstArrayView<Integer> m_row_starts;
132 ConstArrayView<Integer> m_cols;
133 ConstArrayView<Integer> m_local_row_size;
134 ArrayView<Real> m_values;