16 #ifndef dealii_vector_memory_h 17 #define dealii_vector_memory_h 103 template <
typename VectorType = ::Vector<
double>>
162 "You are trying to deallocate a vector from a memory pool, but this " 163 "vector has not actually been allocated by the same pool before.");
188 :
public std::unique_ptr<VectorType, std::function<void(VectorType *)>>
235 template <
typename VectorType = ::Vector<
double>>
312 template <
typename VectorType = ::Vector<
double>>
326 const bool log_statistics =
false);
381 release_unused_memory();
396 using entry_type = std::pair<bool, std::unique_ptr<VectorType>>;
463 namespace GrowingVectorMemoryImplementation
476 template <
typename VectorType>
478 : std::unique_ptr<VectorType, std::function<void(VectorType *)>>(
485 template <
typename VectorType>
494 template <
typename VectorType>
virtual VectorType * alloc()=0
std::pair< bool, std::unique_ptr< BlockVector< number > > > entry_type
std::vector< entry_type > * data
virtual void free(const VectorType *const)=0
static ::ExceptionBase & ExcNotAllocatedHere()
virtual ~VectorMemory() override=default
void release_all_unused_memory()
virtual void free(const VectorType *const v) override
#define DeclExceptionMsg(Exception, defaulttext)
#define DEAL_II_NAMESPACE_CLOSE
static Threads::Mutex mutex
unsigned int global_dof_index
#define DEAL_II_NAMESPACE_OPEN
std::enable_if< std::is_fundamental< T >::value, std::size_t >::type memory_consumption(const T &t)
virtual VectorType * alloc() override
Pointer & operator=(Pointer &&p) noexcept=default