OGS
LisVector.cpp
Go to the documentation of this file.
1
// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2
// SPDX-License-Identifier: BSD-3-Clause
3
4
#include "
LisVector.h
"
5
6
#include "
LisCheck.h
"
7
8
namespace
MathLib
9
{
10
LisVector::LisVector
(std::size_t length)
11
{
12
lis_vector_create(0, &
vec_
);
13
lis_vector_set_size(
vec_
, 0, length);
14
}
15
16
LisVector::LisVector
(std::size_t length,
double
* data)
17
{
18
lis_vector_create(0, &
vec_
);
19
lis_vector_set_size(
vec_
, 0, length);
20
for
(std::size_t i = 0; i < length; i++)
21
{
22
lis_vector_set_value(LIS_INS_VALUE, i, data[i],
vec_
);
23
}
24
}
25
26
LisVector::LisVector
(
LisVector
const
& src)
27
{
28
lis_vector_duplicate(src.
vec_
, &
vec_
);
29
lis_vector_copy(src.
vec_
,
vec_
);
30
}
31
32
LisVector::~LisVector
()
33
{
34
lis_vector_destroy(
vec_
);
35
}
36
37
std::size_t
LisVector::size
()
const
38
{
39
IndexType
dummy;
40
IndexType
size
;
41
int
const
ierr = lis_vector_get_size(
vec_
, &dummy, &
size
);
42
checkLisError
(ierr);
43
assert(
size
>= 0);
// For safe implicit conversion to std::size_t.
44
return
size
;
45
}
46
47
void
LisVector::write
(
const
std::string& filename)
const
48
{
49
lis_output_vector(
vec_
, LIS_FMT_PLAIN,
const_cast<
char
*
>
(filename.c_str()));
50
}
51
52
}
// namespace MathLib
LisCheck.h
LisVector.h
MathLib::LisVector::LisVector
LisVector(std::size_t length)
Definition
LisVector.cpp:10
MathLib::LisVector::write
void write(const std::string &filename) const
printout this equation for debugging
Definition
LisVector.cpp:47
MathLib::LisVector::~LisVector
virtual ~LisVector()
Definition
LisVector.cpp:32
MathLib::LisVector::size
std::size_t size() const
return a vector length
Definition
LisVector.cpp:37
MathLib::LisVector::vec_
LIS_VECTOR vec_
Definition
LisVector.h:130
MathLib::LisVector::IndexType
LIS_INT IndexType
Definition
LisVector.h:22
MathLib
Definition
CreateComponent.h:23
MathLib::checkLisError
bool checkLisError(int err)
Definition
LisCheck.h:20
MathLib
LinAlg
Lis
LisVector.cpp
Generated by
1.14.0