9#include <dune/common/densevector.hh>
10#include <dune/common/ftraits.hh>
20 template<
class K >
class EigenVector;
25 struct DenseMatVecTraits< Fem::EigenVector< K > >
27 typedef Fem::EigenVector< K > derived_type;
28 typedef Eigen::Matrix< K, Eigen::Dynamic, 1 > container_type;
30 typedef unsigned int size_type;
34 struct FieldTraits< Fem::EigenVector< K > >
36 typedef typename FieldTraits< K >::field_type field_type;
37 typedef typename FieldTraits< K >::real_type real_type;
49 class EigenVector :
public DenseVector< EigenVector< K > >
51 typedef EigenVector< K > ThisType;
52 typedef DenseVector< ThisType > BaseType;
55 typedef typename BaseType::size_type size_type;
56 typedef size_type SizeType;
57 typedef typename BaseType::value_type value_type;
58 typedef value_type FieldType;
59 typedef typename DenseMatVecTraits< ThisType >::container_type container_type;
60 typedef container_type DofStorageType;
63 explicit EigenVector( size_type size = 0 )
68 EigenVector( size_type size,
const value_type& s )
71 std::fill( data_.begin(), data_.end(), s );
76 EigenVector(
const DenseVector< T >& v )
79 std::copy( v.begin(), v.end(), data_.begin() );
83 EigenVector &operator=(
const EigenVector& other )
85 data_.resize( other.size() );
86 std::copy( other.begin(), other.end(), data_.begin() );
90 const value_type& operator[]( size_type index )
const
92 return data_( index );
95 value_type& operator[]( size_type index )
97 return data_( index );
101 const DofStorageType& coefficients()
const
107 DofStorageType& coefficients()
113 const value_type* data()
const
125 void reserve( size_type newSize )
127 data_.resize( newSize );
131 void resize( size_type newSize )
133 data_.resize( newSize );
137 void resize( size_type newSize,
const value_type& s )
139 data_.resize( newSize );
140 std::fill( data_.begin(), data_.end(), s );
143 size_type size()
const
149 DofStorageType data_;
164 inline std::istream&
operator>>( std::istream&
in, EigenVector< K >& v )
166 EigenVector< K > w(v);
167 for(
typename EigenVector< K >::size_type i = 0; i < w.size(); ++i )
Definition: bindguard.hh:11
InStreamInterface< StreamTraits > & operator>>(InStreamInterface< StreamTraits > &in, DiscreteFunctionInterface< Impl > &df)
read a discrete function from an input stream
Definition: discretefunction_inline.hh:416