Reference documentation for deal.II version 9.0.0
deal.II
sundials
copy.h
1
//-----------------------------------------------------------
2
//
3
// Copyright (C) 2017 by the deal.II authors
4
//
5
// This file is part of the deal.II library.
6
//
7
// The deal.II library is free software; you can use it, redistribute
8
// it, and/or modify it under the terms of the GNU Lesser General
9
// Public License as published by the Free Software Foundation; either
10
// version 2.1 of the License, or (at your option) any later version.
11
// The full text of the license can be found in the file LICENSE at
12
// the top level of the deal.II distribution.
13
//
14
//-----------------------------------------------------------
15
16
#ifndef dealii_sundials_copy_h
17
#define dealii_sundials_copy_h
18
19
#include <deal.II/base/config.h>
20
#ifdef DEAL_II_WITH_SUNDIALS
21
22
#include <sundials/sundials_nvector.h>
23
#ifdef DEAL_II_WITH_MPI
24
#include <nvector/nvector_parallel.h>
25
#endif
26
#include <nvector/nvector_serial.h>
27
28
#include <deal.II/lac/vector.h>
29
#include <deal.II/lac/block_vector.h>
30
31
#ifdef DEAL_II_WITH_TRILINOS
32
#include <deal.II/lac/trilinos_vector.h>
33
#include <deal.II/lac/trilinos_parallel_block_vector.h>
34
#endif
35
36
#ifdef DEAL_II_WITH_PETSC
37
#include <deal.II/lac/petsc_parallel_vector.h>
38
#include <deal.II/lac/petsc_parallel_block_vector.h>
39
#endif
40
41
DEAL_II_NAMESPACE_OPEN
42
namespace
SUNDIALS
43
{
44
namespace
internal
45
{
46
// The following internal functions are used by SUNDIALS wrappers to copy
47
// to and from deal.II vector types.
48
#ifdef DEAL_II_WITH_MPI
49
50
#ifdef DEAL_II_WITH_TRILINOS
51
void
copy(
TrilinosWrappers::MPI::Vector
&dst,
const
N_Vector &src);
52
void
copy(N_Vector &dst,
const
TrilinosWrappers::MPI::Vector
&src);
53
void
copy(
TrilinosWrappers::MPI::BlockVector
&dst,
const
N_Vector &src);
54
void
copy(N_Vector &dst,
const
TrilinosWrappers::MPI::BlockVector
&src);
55
#endif // DEAL_II_WITH_TRILINOS
56
57
#ifdef DEAL_II_WITH_PETSC
58
#ifndef PETSC_USE_COMPLEX
59
void
copy(
PETScWrappers::MPI::Vector
&dst,
const
N_Vector &src);
60
void
copy(N_Vector &dst,
const
PETScWrappers::MPI::Vector
&src);
61
void
copy(
PETScWrappers::MPI::BlockVector
&dst,
const
N_Vector &src);
62
void
copy(N_Vector &dst,
const
PETScWrappers::MPI::BlockVector
&src);
63
#endif // PETSC_USE_COMPLEX
64
#endif // DEAL_II_WITH_PETSC
65
66
#endif
67
68
void
copy(
BlockVector<double>
&dst,
const
N_Vector &src);
69
void
copy(N_Vector &dst,
const
BlockVector<double>
&src);
70
71
void
copy(
Vector<double>
&dst,
const
N_Vector &src);
72
void
copy(N_Vector &dst,
const
Vector<double>
&src);
73
}
74
}
75
DEAL_II_NAMESPACE_CLOSE
76
77
#endif // DEAL_II_WITH_SUNDIALS
78
#endif // dealii_sundials_copy_h
79
80
81
SUNDIALS
Definition:
arkode.h:58
PETScWrappers::MPI::BlockVector
Definition:
petsc_parallel_block_vector.h:62
Vector< double >
TrilinosWrappers::MPI::Vector
Definition:
trilinos_vector.h:397
TrilinosWrappers::MPI::BlockVector
Definition:
trilinos_parallel_block_vector.h:70
BlockVector
Definition:
block_linear_operator.h:38
internal
Definition:
aligned_vector.h:327
PETScWrappers::MPI::Vector
Definition:
petsc_parallel_vector.h:158
Generated by
1.8.14