MFEM v4.8.0
Finite element discretization library
Loading...
Searching...
No Matches
native.hpp
Go to the documentation of this file.
1// Copyright (c) 2010-2025, Lawrence Livermore National Security, LLC. Produced
2// at the Lawrence Livermore National Laboratory. All Rights reserved. See files
3// LICENSE and NOTICE for details. LLNL-CODE-806117.
4//
5// This file is part of the MFEM library. For more information and source code
6// availability visit https://mfem.org.
7//
8// MFEM is free software; you can redistribute it and/or modify it under the
9// terms of the BSD-3 license. We welcome feedback and contributions, see file
10// CONTRIBUTING.md for details.
11
12#ifndef MFEM_NATIVE_LINALG
13#define MFEM_NATIVE_LINALG
14
15#include "batched.hpp"
16
17namespace mfem
18{
19
21{
22public:
23 void AddMult(const DenseTensor &A, const Vector &x, Vector &y,
24 real_t alpha, real_t beta, Op op) const override;
25 void Invert(DenseTensor &A) const override;
26 void LUFactor(DenseTensor &A, Array<int> &P) const override;
27 void LUSolve(const DenseTensor &LU, const Array<int> &P,
28 Vector &x) const override;
29};
30
31} // namespace mfem
32
33#endif
Abstract base clase for batched linear algebra operations.
Definition batched.hpp:122
Op
Operation type (transposed or not transposed)
Definition batched.hpp:54
Rank 3 tensor (array of matrices)
void LUSolve(const DenseTensor &LU, const Array< int > &P, Vector &x) const override
See BatchedLinAlg::LUSolve.
Definition native.cpp:168
void AddMult(const DenseTensor &A, const Vector &x, Vector &y, real_t alpha, real_t beta, Op op) const override
See BatchedLinAlg::AddMult.
Definition native.cpp:20
void Invert(DenseTensor &A) const override
See BatchedLinAlg::Invert.
Definition native.cpp:64
void LUFactor(DenseTensor &A, Array< int > &P) const override
See BatchedLinAlg::LUFactor.
Definition native.cpp:147
Vector data type.
Definition vector.hpp:82
Vector beta
const real_t alpha
Definition ex15.cpp:369
float real_t
Definition config.hpp:43