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
lis_vector_set_value(LIS_INS_VALUE, i, data[i],
vec_
);
22
}
23
24
LisVector::LisVector
(
LisVector
const
& src)
25
{
26
lis_vector_duplicate(src.
vec_
, &
vec_
);
27
lis_vector_copy(src.
vec_
,
vec_
);
28
}
29
30
LisVector::~LisVector
()
31
{
32
lis_vector_destroy(
vec_
);
33
}
34
35
std::size_t
LisVector::size
()
const
36
{
37
IndexType
dummy;
38
IndexType
size
;
39
int
const
ierr = lis_vector_get_size(
vec_
, &dummy, &
size
);
40
checkLisError
(ierr);
41
assert(
size
>= 0);
// For safe implicit conversion to std::size_t.
42
return
size
;
43
}
44
45
void
LisVector::write
(
const
std::string& filename)
const
46
{
47
lis_output_vector(
vec_
, LIS_FMT_PLAIN,
const_cast<
char
*
>
(filename.c_str()));
48
}
49
50
}
// 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:45
MathLib::LisVector::~LisVector
virtual ~LisVector()
Definition
LisVector.cpp:30
MathLib::LisVector::size
std::size_t size() const
return a vector length
Definition
LisVector.cpp:35
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