1 #ifndef DUNE_FEM_TEMPORARYLOCALMATRIX_HH 2 #define DUNE_FEM_TEMPORARYLOCALMATRIX_HH 26 template<
class DomainSpaceImp,
class RangeSpaceImp >
31 template<
class DomainSpaceImp,
class RangeSpaceImp >
47 template<
class DomainSpaceImp,
class RangeSpaceImp >
50 < TemporaryLocalMatrixTraits< DomainSpaceImp, RangeSpaceImp > >
65 using BaseType :: rows;
66 using BaseType :: columns;
77 const RangeSpaceType &rangeSpace )
78 : BaseType( domainSpace, rangeSpace ),
83 template<
class DomainEntityType,
class RangeEntityType >
85 const RangeSpaceType &rangeSpace,
88 : BaseType( domainSpace, rangeSpace, domainEntity, rangeEntity ),
89 fields_( rows() * columns() )
95 template<
class DomainEntityType,
class RangeEntityType >
99 BaseType :: init( domainEntity, rangeEntity );
100 fields_.
resize( rows() * columns() );
104 inline void add (
const int localRow,
106 const RangeFieldType &value )
108 assert( (localRow >= 0) && (localRow < rows()) );
109 assert( (localCol >= 0) && (localCol < columns()) );
110 fields_[ localRow * columns() + localCol ] += value;
114 inline void set (
const int localRow,
116 const RangeFieldType &value )
118 assert( (localRow >= 0) && (localRow < rows()) );
119 assert( (localCol >= 0) && (localCol < columns()) );
120 fields_[ localRow * columns() + localCol ] = value;
123 inline const RangeFieldType
get (
const int localRow,
124 const int localCol )
const 126 assert( (localRow >= 0) && (localRow < rows()) );
127 assert( (localCol >= 0) && (localCol < columns()) );
128 return fields_[ localRow * columns() + localCol ];
140 assert( (localRow >= 0) && (localRow < rows()) );
141 const int col = columns();
142 int start = localRow * col;
143 const int end = start + col;
144 for(
int i = start; i < end; ++i) {
155 #endif // #ifndef DUNE_FEM_TEMPORARYLOCALMATRIX_HH A local matrix with a small array as storage.
Definition: temporarylocalmatrix.hh:27
RangeSpaceType::EntityType RangeEntityType
Definition: localmatrix.hh:65
void clearRow(const int localRow)
set row to zero values
Definition: temporarylocalmatrix.hh:138
RangeSpaceImp RangeSpaceType
Definition: temporarylocalmatrix.hh:54
DomainSpaceType::RangeFieldType DomainFieldType
Definition: temporarylocalmatrix.hh:40
RangeSpaceImp RangeSpaceType
Definition: temporarylocalmatrix.hh:35
TemporaryLocalMatrixTraits< DomainSpaceType, RangeSpaceType > Traits
Definition: temporarylocalmatrix.hh:57
RangeSpaceType::RangeFieldType RangeFieldType
Definition: temporarylocalmatrix.hh:41
void clear()
set all entries of local matrix to zero
Definition: temporarylocalmatrix.hh:132
Default implementation for local matrix classes.
Definition: localmatrix.hh:266
DomainSpaceImp DomainSpaceType
Definition: temporarylocalmatrix.hh:34
Traits::DomainFieldType DomainFieldType
Definition: temporarylocalmatrix.hh:69
void add(const int localRow, const int localCol, const RangeFieldType &value)
add value to matrix entry (row,col) where row and col are local row and local column ...
Definition: temporarylocalmatrix.hh:104
Fem::DynamicArray< RangeFieldType > fields_
Definition: temporarylocalmatrix.hh:73
Definition: coordinate.hh:4
void init(const DomainEntityType &domainEntity, const RangeEntityType &rangeEntity)
initialize the local matrix to entities
Definition: temporarylocalmatrix.hh:96
TemporaryLocalMatrix(const DomainSpaceType &domainSpace, const RangeSpaceType &rangeSpace, const DomainEntityType &domainEntity, const RangeEntityType &rangeEntity)
Definition: temporarylocalmatrix.hh:84
RangeFieldType LittleBlockType
Definition: temporarylocalmatrix.hh:42
TemporaryLocalMatrix< DomainSpaceType, RangeSpaceType > LocalMatrixType
Definition: temporarylocalmatrix.hh:38
Definition: temporarylocalmatrix.hh:32
void assign(const ArrayInterface< T > &other)
copy another array to this one
Definition: array.hh:572
DomainSpaceImp DomainSpaceType
Definition: temporarylocalmatrix.hh:53
void resize(unsigned int newSize)
Definition: array.hh:594
Traits::RangeFieldType RangeFieldType
Definition: temporarylocalmatrix.hh:70
DomainSpaceType::EntityType DomainEntityType
Definition: localmatrix.hh:64
TemporaryLocalMatrix(const DomainSpaceType &domainSpace, const RangeSpaceType &rangeSpace)
Definition: temporarylocalmatrix.hh:76