MFEM  v4.6.0
Finite element discretization library
diffusion.hpp
Go to the documentation of this file.
1 // Copyright (c) 2010-2023, 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_LIBCEED_DIFF_HPP
13 #define MFEM_LIBCEED_DIFF_HPP
14 
15 #include "../../interface/integrator.hpp"
16 #include "../../interface/mixed_integrator.hpp"
17 #include "../../../fespace.hpp"
18 
19 namespace mfem
20 {
21 
22 namespace ceed
23 {
24 
25 /// Represent a DiffusionIntegrator with AssemblyLevel::Partial using libCEED.
27 {
28 public:
30  const mfem::IntegrationRule &ir,
32 };
33 
34 class MixedPADiffusionIntegrator : public MixedIntegrator<PAIntegrator>
35 {
36 public:
38  const mfem::FiniteElementSpace &fes,
40 
42  const mfem::FiniteElementSpace &fes,
44 };
45 
46 /// Represent a DiffusionIntegrator with AssemblyLevel::None using libCEED.
48 {
49 public:
51  const mfem::IntegrationRule &ir,
53 };
54 
55 class MixedMFDiffusionIntegrator : public MixedIntegrator<MFIntegrator>
56 {
57 public:
59  const mfem::FiniteElementSpace &fes,
61 
63  const mfem::FiniteElementSpace &fes,
65 };
66 
67 }
68 
69 }
70 
71 #endif // MFEM_LIBCEED_DIFF_HPP
MixedPADiffusionIntegrator(const DiffusionIntegrator &integ, const mfem::FiniteElementSpace &fes, mfem::Coefficient *Q)
Definition: diffusion.cpp:63
Class for an integration rule - an Array of IntegrationPoint.
Definition: intrules.hpp:96
MFDiffusionIntegrator(const mfem::FiniteElementSpace &fes, const mfem::IntegrationRule &ir, mfem::Coefficient *Q)
Definition: diffusion.cpp:89
Represent a DiffusionIntegrator with AssemblyLevel::None using libCEED.
Definition: diffusion.hpp:47
This class wraps a ceed::PAIntegrator or ceed::MFIntegrator to support mixed finite element spaces...
Represent a DiffusionIntegrator with AssemblyLevel::Partial using libCEED.
Definition: diffusion.hpp:26
Class FiniteElementSpace - responsible for providing FEM view of the mesh, mainly managing the set of...
Definition: fespace.hpp:219
Base class Coefficients that optionally depend on space and time. These are used by the BilinearFormI...
Definition: coefficient.hpp:41
PADiffusionIntegrator(const mfem::FiniteElementSpace &fes, const mfem::IntegrationRule &ir, mfem::Coefficient *Q)
Definition: diffusion.cpp:49
MixedMFDiffusionIntegrator(const DiffusionIntegrator &integ, const mfem::FiniteElementSpace &fes, mfem::Coefficient *Q)
Definition: diffusion.cpp:103