Reference documentation for deal.II version 9.1.1
\(\newcommand{\dealcoloneq}{\mathrel{\vcenter{:}}=}\)
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
SwappableVector< number > Class Template Reference

#include <deal.II/lac/swappable_vector.h>

Inheritance diagram for SwappableVector< number >:
[legend]

Public Member Functions

 SwappableVector ()
 
 SwappableVector (const SwappableVector &v)
 
virtual ~SwappableVector () override
 
SwappableVectoroperator= (const SwappableVector &)
 
void swap_out (const std::string &filename)
 
void reload ()
 
void alert ()
 
void kill_file ()
 
const std::string & get_filename () const
 
std::size_t memory_consumption () const
 
- Public Member Functions inherited from Vector< number >
 Vector ()
 
 Vector (const Vector< number > &v)
 
 Vector (Vector< number > &&v) noexcept=default
 
 Vector (const Vector< OtherNumber > &v)
 
 Vector (const std::initializer_list< OtherNumber > &v)
 
 Vector (const PETScWrappers::VectorBase &v)
 
 Vector (const TrilinosWrappers::MPI::Vector &v)
 
 Vector (const size_type n)
 
 Vector (const InputIterator first, const InputIterator last)
 
virtual ~Vector () override=default
 
void compress (::VectorOperation::values operation=::VectorOperation::unknown) const
 
virtual void reinit (const size_type N, const bool omit_zeroing_entries=false)
 
void reinit (const Vector< Number2 > &V, const bool omit_zeroing_entries=false)
 
void grow_or_shrink (const size_type N)
 
void apply_givens_rotation (const std::array< number, 3 > &csr, const size_type i, const size_type k)
 
virtual void swap (Vector< number > &v)
 
Vector< number > & operator= (const number s)
 
Vector< number > & operator= (const Vector< number > &v)
 
Vector< number > & operator= (Vector< number > &&v) noexcept=default
 
Vector< number > & operator= (const Vector< Number2 > &v)
 
Vector< number > & operator= (const BlockVector< number > &v)
 
Vector< number > & operator= (const PETScWrappers::VectorBase &v)
 
Vector< number > & operator= (const TrilinosWrappers::MPI::Vector &v)
 
bool operator== (const Vector< Number2 > &v) const
 
bool operator!= (const Vector< Number2 > &v) const
 
number operator* (const Vector< Number2 > &V) const
 
real_type norm_sqr () const
 
number mean_value () const
 
real_type l1_norm () const
 
real_type l2_norm () const
 
real_type lp_norm (const real_type p) const
 
real_type linfty_norm () const
 
number add_and_dot (const number a, const Vector< number > &V, const Vector< number > &W)
 
pointer data ()
 
const_pointer data () const
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
number operator() (const size_type i) const
 
number & operator() (const size_type i)
 
number operator[] (const size_type i) const
 
number & operator[] (const size_type i)
 
void extract_subvector_to (const std::vector< size_type > &indices, std::vector< OtherNumber > &values) const
 
void extract_subvector_to (ForwardIterator indices_begin, const ForwardIterator indices_end, OutputIterator values_begin) const
 
Vector< number > & operator+= (const Vector< number > &V)
 
Vector< number > & operator-= (const Vector< number > &V)
 
void add (const std::vector< size_type > &indices, const std::vector< OtherNumber > &values)
 
void add (const std::vector< size_type > &indices, const Vector< OtherNumber > &values)
 
void add (const size_type n_elements, const size_type *indices, const OtherNumber *values)
 
void add (const number s)
 
void add (const number a, const Vector< number > &V, const number b, const Vector< number > &W)
 
void add (const number a, const Vector< number > &V)
 
void sadd (const number s, const Vector< number > &V)
 
void sadd (const number s, const number a, const Vector< number > &V)
 
Vector< number > & operator*= (const number factor)
 
Vector< number > & operator/= (const number factor)
 
void scale (const Vector< number > &scaling_factors)
 
void scale (const Vector< Number2 > &scaling_factors)
 
void equ (const number a, const Vector< number > &u)
 
void equ (const number a, const Vector< Number2 > &u)
 
void ratio (const Vector< number > &a, const Vector< number > &b)
 
void update_ghost_values () const
 
void print (const char *format=nullptr) const
 
void print (std::ostream &out, const unsigned int precision=3, const bool scientific=true, const bool across=true) const
 
void print (LogStream &out, const unsigned int width=6, const bool across=true) const
 
void block_write (std::ostream &out) const
 
void block_read (std::istream &in)
 
void save (Archive &ar, const unsigned int version) const
 
void load (Archive &ar, const unsigned int version)
 
bool in_local_range (const size_type global_index) const
 
IndexSet locally_owned_elements () const
 
size_type size () const
 
bool all_zero () const
 
bool is_non_negative () const
 
std::size_t memory_consumption () const
 
- Public Member Functions inherited from Subscriptor
 Subscriptor ()
 
 Subscriptor (const Subscriptor &)
 
 Subscriptor (Subscriptor &&) noexcept
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
Subscriptoroperator= (Subscriptor &&) noexcept
 
void subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
unsigned int n_subscriptions () const
 
template<typename StreamType >
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Static Public Member Functions

static ::ExceptionBaseExcSizeZero ()
 
static ::ExceptionBaseExcSizeNonzero ()
 
static ::ExceptionBaseExcInvalidFilename (std::string arg1)
 
static ::ExceptionBaseExcInvalidCopyOperation ()
 
- Static Public Member Functions inherited from Subscriptor
static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
 

Private Member Functions

void reload_vector (const bool set_flag)
 

Private Attributes

std::string filename
 
Threads::Mutex lock
 
bool data_is_preloaded
 

Additional Inherited Members

- Public Types inherited from Vector< number >
using value_type = number
 
using real_type = typename numbers::NumberTraits< number >::real_type
 

Detailed Description

template<typename number>
class SwappableVector< number >

This class is a wrapper to the Vector class which allows to swap out the data to a file and reload it later on. It handles the management of the name of the file where the data is to be stored temporarily and removes the file is necessary at the end of the lifetime of the vector.

There are functions to swap the data to a file, and to reload it. There is also a function alert that can be used to signal to an object of this class that the data will be needed shortly, so the object can initiate that the data be loaded already. While in non-multithreading mode, this function has no effect since reload has to be called afterwards anyway. On the other hand, in multithreading mode, the data is preloaded in the background using a thread on its own, and may already be available at the time when reload is called. If it is not available, reload waits until the detached thread has loaded the data.

Note
Instantiations for this template are provided for <float> and <double>; others can be generated in application programs (see the section on Template instantiations in the manual).
Deprecated:
The usage of this class is deprecated.
Author
Wolfgang Bangerth, 1999, 2000

Definition at line 61 of file swappable_vector.h.


The documentation for this class was generated from the following file: