![]() |
Documentation 6b54b78464
|
Declararion and inlines of the vector class used in the solution of large, distributed, sparse linear systems. More...
#include <memory>#include <vector>#include "../code_config.hpp"#include "../parallelization/mpi_structure.hpp"#include "../parallelization/omp_structure.hpp"#include "../parallelization/vectorization.hpp"#include "vector_expressions.hpp"#include "../../include/CConfig.hpp"Go to the source code of this file.
Classes | |
| class | VecExpr::CVectorView< Scalar > |
| How a CSysVector is captured inside an expression: a bare pointer to whichever storage the expression is going to be evaluated from. More... | |
| struct | VecExpr::store_type< CSysVector< Scalar > > |
| struct | VecExpr::store_type< const CSysVector< Scalar > > |
| class | CSysVector< ScalarType > |
| Class for holding and manipulating vectors needed by linear solvers. More... | |
Namespaces | |
| namespace | VecExpr |
Macros | |
| #define | CSYSVEC_PARFOR SU2_OMP_SIMD |
| OpenMP worksharing construct used in CSysVector for loops. | |
| #define | END_CSYSVEC_PARFOR |
| #define | SU2_DEVICE_REGION(...) SU2_OMP_SAFE_GLOBAL_ACCESS(__VA_ARGS__) |
| Brackets device work so that it is issued by a single thread with the whole team synchronized before and after. | |
| #define | BEGIN_SU2_DEVICE_REGION BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS |
| #define | END_SU2_DEVICE_REGION END_SU2_OMP_SAFE_GLOBAL_ACCESS |
| #define | MAKE_COMPOUND(OP, ASSIGN_OP) |
| Compound assignement operations with scalars and expressions. | |
Enumerations | |
| enum class | VecExpr::DeviceAssignOp { VecExpr::Assign , VecExpr::Add , VecExpr::Subtract , VecExpr::Multiply , VecExpr::Divide } |
Functions | |
| bool | VecExpr::UseDeviceExpressions () |
| Whether vector expressions are currently evaluated on the device. | |
| void | VecExpr::SetUseDeviceExpressions (bool) |
| template<DeviceAssignOp Op, class Scalar , class T > | |
| void | VecExpr::AssignDeviceExpression (Scalar *data, unsigned long size, const CVecExpr< T, Scalar > &expr) |
Variables | |
| template<class ScalarType > | |
| constexpr bool | su2_gpu_capable_v = false |
| True for the plain floating-point scalar types the GPU vector kernels (CSysVectorGPU.cu) are instantiated for, in builds where those kernels exist at all. AD active types are never dispatched to the device: the tape/expression machinery those types pull in is not compatible with nvcc's device-code compilation, and device-resident autodiff is not supported by this GPU path. | |
Declararion and inlines of the vector class used in the solution of large, distributed, sparse linear systems.
SU2 Project Website: https://su2code.github.io
The SU2 Project is maintained by the SU2 Foundation (http://su2foundation.org)
Copyright 2012-2026, SU2 Contributors (cf. AUTHORS.md)
SU2 is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
SU2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with SU2. If not, see http://www.gnu.org/licenses/.
| #define BEGIN_SU2_DEVICE_REGION BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS |
| #define CSYSVEC_PARFOR SU2_OMP_SIMD |
OpenMP worksharing construct used in CSysVector for loops.
| #define END_CSYSVEC_PARFOR |
| #define END_SU2_DEVICE_REGION END_SU2_OMP_SAFE_GLOBAL_ACCESS |
| #define MAKE_COMPOUND | ( | OP, | |
| ASSIGN_OP | |||
| ) |
Compound assignement operations with scalars and expressions.
| [in] | val/expr | - Scalar value or expression. |
| #define SU2_DEVICE_REGION | ( | ... | ) | SU2_OMP_SAFE_GLOBAL_ACCESS(__VA_ARGS__) |
Brackets device work so that it is issued by a single thread with the whole team synchronized before and after.
|
inlineconstexpr |
True for the plain floating-point scalar types the GPU vector kernels (CSysVectorGPU.cu) are instantiated for, in builds where those kernels exist at all. AD active types are never dispatched to the device: the tape/expression machinery those types pull in is not compatible with nvcc's device-code compilation, and device-resident autodiff is not supported by this GPU path.