MFEM v4.7.0
Finite element discretization library
Loading...
Searching...
No Matches
face_nbr_geom.hpp
Go to the documentation of this file.
1// Copyright (c) 2010-2024, 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_FACE_NBR_GEOM
13#define MFEM_FACE_NBR_GEOM
14
15#include "../config/config.hpp"
16#include "mesh.hpp"
17#include "pmesh.hpp"
18
19namespace mfem
20{
21
22/// @brief Class for accessing the geometric factors of face neighbor elements
23/// (i.e. across boundaries of MPI mesh partitions).
24///
25/// @sa GeometricFactors
27{
28public:
29 int num_neighbor_elems; ///< Number of face neighbor elements.
30
31 /// @name Geometric factor data arrays
32 /// These are stored with layout (NQ, VDIM, NE). See the documentation of
33 /// GeometricFactors for more details.
34 ///@{
35
36 Vector X; ///< Physical coordinates of the mesh.
37 Vector J; ///< Jacobian matrices
38 Vector detJ; ///< Jacobian determinants
39
40 ///@}
41
42 /// Communicate (if needed) to gather the face neighbor geometric factors.
44
45protected:
46 const GeometricFactors &geom; ///< The GeometricFactors of the Mesh.
47
48 /// @name Internal work arrays, used for MPI communication
49 ///@{
50
53
54 ///@}
55
56 /// @brief Given a Q-vector @a x_local with @a vdim components, fill the
57 /// face-neighbor Q-vector @a x_shared by communicating with neighboring MPI
58 /// partitions.
59 void ExchangeFaceNbrQVectors(const Vector &x_local, Vector &x_shared,
60 const int vdim);
61};
62
63} // namespace mfem
64
65#endif
Class for accessing the geometric factors of face neighbor elements (i.e. across boundaries of MPI me...
const GeometricFactors & geom
The GeometricFactors of the Mesh.
FaceNeighborGeometricFactors(const GeometricFactors &geom_)
Communicate (if needed) to gather the face neighbor geometric factors.
Vector X
Physical coordinates of the mesh.
Vector detJ
Jacobian determinants.
void ExchangeFaceNbrQVectors(const Vector &x_local, Vector &x_shared, const int vdim)
Given a Q-vector x_local with vdim components, fill the face-neighbor Q-vector x_shared by communicat...
int num_neighbor_elems
Number of face neighbor elements.
Structure for storing mesh geometric factors: coordinates, Jacobians, and determinants of the Jacobia...
Definition mesh.hpp:2790
Vector data type.
Definition vector.hpp:80