Theseus
Compressible flow solver
Loading...
Searching...
No Matches
ModalBasis.hpp
Go to the documentation of this file.
1// Copyright (c) 2025-2026 Board of Trustees of the University of Illinois
2//
3// This file is part of Theseus.
4//
5// SPDX-License-Identifier: BSD-3-Clause
6#pragma once
7
8#include "mfem.hpp"
9
10namespace Prandtl
11{
12
14 {
15 private:
16 int dim;
17 mfem::Array2D<int> ubdegs; // Array of modal basis degrees along each dimension
18 mfem::Vector umc; // Vector of solution modal basis coefficients
19 mfem::DenseMatrix V, V_inv; // (Inverse) Vandermonde matrix
20 mfem::real_t *x, *L, *Li, *Di;
21
22 void ComputeUBDegs(mfem::Geometry::Type &gtype);
23 void ComputeVDM(mfem::IntegrationRule &solpts);
24
25 public:
26 int order, npts;
27
28 ModalBasis(mfem::DG_FECollection &fec, mfem::Geometry::Type &gtype, int order, int dim);
30
31 void ComputeModes(const mfem::Vector &nodes);
32 void ComputeModes(const mfem::Vector &nodes, mfem::Vector &modes);
33 void SetModes(const mfem::Vector &modes);
34 void GetModes(mfem::Vector &modes);
35 mfem::real_t Eval(mfem::Vector &x);
36 mfem::DenseMatrix ComputeVDM(const mfem::IntegrationRule *ir);
37 mfem::Vector EvalGrad(mfem::Vector &x);
38 void ComputeNodes(mfem::Vector &nodes);
39 void ComputeNodes(const mfem::Vector& modes, mfem::Vector& nodes);
40 const mfem::DenseMatrix& GetVandermonde();
41 mfem::Array2D<int> GetPolyDegs();
42 };
43
44}
Definition ModalBasis.hpp:14
int npts
Definition ModalBasis.hpp:26
void GetModes(mfem::Vector &modes)
Definition ModalBasis.cpp:162
void SetModes(const mfem::Vector &modes)
Definition ModalBasis.cpp:157
mfem::Vector EvalGrad(mfem::Vector &x)
Definition ModalBasis.cpp:235
mfem::real_t Eval(mfem::Vector &x)
Definition ModalBasis.cpp:181
void ComputeNodes(mfem::Vector &nodes)
Definition ModalBasis.cpp:167
const mfem::DenseMatrix & GetVandermonde()
Definition ModalBasis.cpp:42
int order
Definition ModalBasis.hpp:26
mfem::Array2D< int > GetPolyDegs()
Definition ModalBasis.cpp:37
~ModalBasis()
Definition ModalBasis.cpp:29
void ComputeModes(const mfem::Vector &nodes)
Definition ModalBasis.cpp:142
Definition ConditionFactory.hpp:16