BELFEM 0.9.3
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
cl_Vector.hpp
Go to the documentation of this file.
1/*
2 * BELFEM -- The Berkeley Lab Finite Element Framework
3 * Copyright (c) 2026, The Regents of the University of California,
4 * through Lawrence Berkeley National Laboratory (subject to receipt of any required
5 * approvals from the U.S. Dept. of Energy). All rights reserved.
6 *
7 * Developers: Christian Messe, Gregory Giard
8 *
9 * See the top-level LICENSE file for the complete license and disclaimer.
10 */
11
12#ifndef BELFEM_CL_VECTOR_HPP
13#define BELFEM_CL_VECTOR_HPP
14
15/*
16 * The contract of belfem::Vector with either backend: storage is contiguous
17 * with unit stride, so data() may be handed directly to BLAS, LAPACK, MPI
18 * and Fortran with length() elements. data() for an empty Vector is
19 * well-defined and may be nullptr, so test length(), never the pointer.
20 * Vector is for linear algebra; lists of ids or entities go into Cell.
21 */
22
23// include implementation
24#ifdef BELFEM_ARMADILLO
25#include "cl_AR_Vector.hpp"
28#elif BELFEM_BLAZE
29#include "cl_BZ_Vector.hpp"
32#endif
33
34// include operators
35#include "op_VectorPlus.hpp"
36#include "op_VectorMinus.hpp"
37#include "op_VectorTimes.hpp"
38#include "op_VectorDivide.hpp"
39#endif