Xpetra
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
Xpetra_VectorFactory_decl.hpp
Go to the documentation of this file.
1
// @HEADER
2
// *****************************************************************************
3
// Xpetra: A linear algebra interface package
4
//
5
// Copyright 2012 NTESS and the Xpetra contributors.
6
// SPDX-License-Identifier: BSD-3-Clause
7
// *****************************************************************************
8
// @HEADER
9
10
#ifndef XPETRA_VECTORFACTORY_DECL_HPP
11
#define XPETRA_VECTORFACTORY_DECL_HPP
12
13
#include "
Xpetra_ConfigDefs.hpp
"
14
#include "
Xpetra_Vector.hpp
"
15
16
#include "
Xpetra_TpetraVector_decl.hpp
"
17
18
#include "
Xpetra_BlockedMap_decl.hpp
"
19
#include "
Xpetra_BlockedVector_decl.hpp
"
20
#include "
Xpetra_Exceptions.hpp
"
21
22
namespace
Xpetra
{
23
24
template
<
class
Scalar
/* = Vector<>::scalar_type*/
,
25
class
LocalOrdinal
/* = typename Vector<Scalar>::local_ordinal_type*/
,
26
class
GlobalOrdinal
/* = typename Vector<Scalar, LocalOrdinal>::local_ordinal_type*/
,
27
class
Node
/* = typename Vector<Scalar, LocalOrdinal, GlobalOrdinal>::node_type*/
>
28
class
VectorFactory
{
29
#undef XPETRA_VECTORFACTORY_SHORT
30
#include "
Xpetra_UseShortNames.hpp
"
31
32
private
:
34
VectorFactory
() =
default
;
35
36
public
:
38
static
Teuchos::RCP<Xpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
>
39
Build
(
const
Teuchos::RCP
<
const
Xpetra::Map<LocalOrdinal, GlobalOrdinal, Node>
>& map,
bool
zeroOut =
true
) {
40
XPETRA_MONITOR
(
"VectorFactory::Build"
);
41
42
RCP<const Xpetra::BlockedMap<LocalOrdinal, GlobalOrdinal, Node>
>
43
bmap = Teuchos::rcp_dynamic_cast<const Xpetra::BlockedMap<LocalOrdinal, GlobalOrdinal, Node>>(map);
44
45
if
(!bmap.
is_null
()) {
46
return
rcp
(
new
Xpetra::BlockedVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>(bmap, zeroOut));
47
}
48
49
if
(map->lib() ==
UseTpetra
) {
50
return
rcp
(
new
TpetraVector
(map, zeroOut));
51
}
52
53
XPETRA_FACTORY_END
;
54
TEUCHOS_UNREACHABLE_RETURN
(Teuchos::null);
55
}
56
57
};
// class VectorFactory
58
59
#define XPETRA_VECTORFACTORY_SHORT
60
61
}
// namespace Xpetra
62
63
#define XPETRA_VECTORFACTORY_SHORT
64
#endif
// XPETRA_VECTORFACTORY_DECL_HPP
XPETRA_MONITOR
#define XPETRA_MONITOR(funcName)
Xpetra_BlockedMap_decl.hpp
Xpetra_BlockedVector_decl.hpp
Xpetra_ConfigDefs.hpp
Xpetra_Exceptions.hpp
XPETRA_FACTORY_END
#define XPETRA_FACTORY_END
Definition
Xpetra_Exceptions.hpp:33
Xpetra_TpetraVector_decl.hpp
Xpetra_UseShortNames.hpp
Xpetra_Vector.hpp
Teuchos::RCP
Teuchos::RCP::is_null
bool is_null() const
Xpetra::Map
Definition
Xpetra_Map_decl.hpp:35
Xpetra::TpetraVector
Definition
Xpetra_TpetraVector_decl.hpp:45
Xpetra::VectorFactory::Build
static Teuchos::RCP< Xpetra::Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Build(const Teuchos::RCP< const Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > &map, bool zeroOut=true)
Constructor specifying the number of non-zeros for all rows.
Definition
Xpetra_VectorFactory_decl.hpp:39
Xpetra::VectorFactory::VectorFactory
VectorFactory()=default
Private constructor. This is a static class.
TEUCHOS_UNREACHABLE_RETURN
#define TEUCHOS_UNREACHABLE_RETURN(dummyReturnVal)
Xpetra
Xpetra namespace
Definition
Xpetra_BlockedCrsMatrix_decl.hpp:52
Xpetra::rcp
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Xpetra::UseTpetra
@ UseTpetra
Definition
Xpetra_Map_decl.hpp:27
src
Vector
Xpetra_VectorFactory_decl.hpp
Generated by
1.17.0