6 #include <dune/common/concept.hh> 7 #include <dune/common/shared_ptr.hh> 8 #include <dune/functions/functionspacebases/concepts.hh> 10 #include <amdis/DataTransfer.hpp> 11 #include <amdis/LinearAlgebra.hpp> 12 #include <amdis/Observer.hpp> 13 #include <amdis/common/Concepts.hpp> 14 #include <amdis/common/TypeTraits.hpp> 15 #include <amdis/functions/GlobalBasis.hpp> 16 #include <amdis/typetree/TreePath.hpp> 26 template <
class GB,
class T =
double,
class TraitsType = BackendTraits<GB>>
28 :
public VectorFacade<T, TraitsType::template VectorImpl>
58 DataTransferOperation op = DataTransferOperation::INTERPOLATE)
60 ,
Observer<event::preAdapt>(basis->gridView().grid())
62 ,
Observer<event::postAdapt>(basis->gridView().grid())
63 , dataTransfer_(op, basis)
70 REQUIRES(Concepts::Similar<GB_,GB>)>
71 DOFVector(GB_&&
basis, DataTransferOperation op = DataTransferOperation::INTERPOLATE)
77 template <
class GV,
class PBF,
78 REQUIRES(Concepts::PreBasisFactory<PBF, GV, MultiIndex_t<PBF>>)>
79 DOFVector(GV
const& gridView, PBF
const& preBasisFactory,
80 DataTransferOperation op = DataTransferOperation::INTERPOLATE)
81 :
DOFVector(
std::make_shared<GB>(gridView, preBasisFactory), op)
101 void backup(std::string
const& filename);
104 void restore(std::string
const& filename);
123 return dataTransfer_;
129 return dataTransfer_;
155 dataTransfer_.preAdapt(*
this, e.value);
164 dataTransfer_.adapt(*
this);
171 dataTransfer_.postAdapt(*
this);
179 std::shared_ptr<GlobalBasis const> basis_;
185 DOFVector(GB&&
basis, DataTransferOperation op = DataTransferOperation::INTERPOLATE)
188 template <
class GV,
class PBF>
189 DOFVector(GV
const& gridView, PBF
const& pbf,
190 DataTransferOperation op = DataTransferOperation::INTERPOLATE)
204 template <
class ValueType =
double,
class GB>
208 return {FWD(
basis), op};
213 #include <amdis/DOFVector.inc.hpp> GB GlobalBasis
A global basis associated to the coefficients.
Definition: DOFVector.hpp:37
DOFVector(GB_ &&basis, DataTransferOperation op=DataTransferOperation::INTERPOLATE)
Definition: DOFVector.hpp:71
T value_type
The type of the elements of the DOFVector.
Definition: DOFVector.hpp:46
The basic container that stores a base vector and a corresponding basis.
Definition: LinearSolverInterface.hpp:23
DataTransferWrapper< Self > DataTransfer
Wrapper for the implementation of the transfer of data during grid adaption.
Definition: DOFVector.hpp:49
Definition: AdaptiveGrid.hpp:373
Definition: FieldMatVec.hpp:12
DOFVector(std::shared_ptr< GB > const &basis, DataTransferOperation op=DataTransferOperation::INTERPOLATE)
Definition: DOFVector.hpp:57
void updateImpl(event::postAdapt) override
Definition: DOFVector.hpp:169
void updateImpl(event::adapt e) override
Definition: DOFVector.hpp:160
The basic container that stores a base vector and a corresponding basis.
Definition: DOFVector.hpp:27
Contains all classes needed for solving linear and non linear equation systems.
Definition: AdaptBase.hpp:6
DataTransfer & dataTransfer()
Return the associated DataTransfer object.
Definition: DOFVector.hpp:127
Implementation of the ObserverInterface.
Definition: Observer.hpp:100
DOFVector< Underlying_t< GB >, ValueType > makeDOFVector(GB &&basis, DataTransferOperation op=DataTransferOperation::INTERPOLATE)
Create a DOFVector from a basis.
Definition: DOFVector.hpp:206
void setDataTransfer(DataTransfer const &dataTransfer)
Assign the DataTransfer object.
Definition: DOFVector.hpp:133
void resize(SizeInfo const &sizeInfo)
Resize the vector to the size of the basis.
Definition: VectorFacade.hpp:101
Definition: Observer.hpp:25
Definition: Observer.hpp:30
void resizeZero(SizeInfo const &sizeInfo)
Resize the vector to the size of the basis and set to zero.
Definition: VectorFacade.hpp:108
void setDataTransfer(DataTransferOperation op)
Create a new DataTransfer object based on the operation type.
Definition: DOFVector.hpp:144
GlobalBasis const & basis() const
Return the global basis.
Definition: DOFVector.hpp:85
Definition: Observer.hpp:19
DataTransfer const & dataTransfer() const
Return the associated DataTransfer object.
Definition: DOFVector.hpp:121
void backup(std::string const &filename)
Write DOFVector to file.
Definition: DOFVector.inc.hpp:15
DOFVector(GV const &gridView, PBF const &preBasisFactory, DataTransferOperation op=DataTransferOperation::INTERPOLATE)
Definition: DOFVector.hpp:79
typename GlobalBasis::size_type size_type
The index/size - type.
Definition: DOFVector.hpp:43
void updateImpl(event::preAdapt e) override
Definition: DOFVector.hpp:153
void restore(std::string const &filename)
Read backup data from file.
Definition: DOFVector.inc.hpp:40