|
Smith
0.1
Smith is an implicit thermal structural mechanics simulation code.
|
Implementation of the quadrature-function-based functional enabling rapid development of FEM formulations. More...
#include <algorithm>#include <array>#include <functional>#include <memory>#include <tuple>#include <type_traits>#include <utility>#include <vector>#include "mfem.hpp"#include "smith/smith_config.hpp"#include "smith/infrastructure/logger.hpp"#include "smith/numerics/functional/tensor.hpp"#include "smith/numerics/functional/quadrature.hpp"#include "smith/numerics/functional/finite_element.hpp"#include "smith/numerics/functional/integral.hpp"#include "smith/numerics/functional/differentiate_wrt.hpp"#include "smith/numerics/functional/element_restriction.hpp"#include "smith/numerics/functional/domain.hpp"#include "functional_qoi.inl"

Go to the source code of this file.
Classes | |
| struct | smith::DependsOn< i > |
| struct | smith::Index< ind > |
| Compile-time alias for index of differentiation. More... | |
| class | smith::Functional< test(trials...), exec > |
Intended to be like std::function for finite element kernels. More... | |
Namespaces | |
| smith | |
| Accelerator functionality. | |
Functions | |
| template<typename... T> | |
| constexpr uint32_t | smith::index_of_differentiation () |
given a list of types, this function returns the index that corresponds to the type dual_vector. More... | |
| void | smith::check_for_missing_nodal_gridfunc (const mfem::Mesh &mesh) |
| function for verifying that the mesh has been fully initialized | |
| void | smith::check_for_unsupported_elements (const mfem::Mesh &mesh) |
| function for verifying that there are no unsupported element types in the mesh | |
| template<typename function_space > | |
| std::pair< std::unique_ptr< mfem::ParFiniteElementSpace >, std::unique_ptr< mfem::FiniteElementCollection > > | smith::generateParFiniteElementSpace (mfem::ParMesh *mesh) |
| create an mfem::ParFiniteElementSpace from one of Smith's tag types: H1, Hcurl, L2 More... | |
| void | smith::updateFaceNbrData (const mfem::ParFiniteElementSpace *const_trial_space, mfem::ParGridFunction &trial_pgf, mfem::Vector &trial_tdof_vals) |
| helper function to locally cast away const on FE space so we can update face neighbor data with ExchangeFaceNbrData. This is ok because : 1) the original trial FE space is declared without const; 2) we constrained the non-constness locally; 3) the locally owned data associated with the trial function space is NOT altered and ONLY ghost data is updated. | |
| void | smith::appendFaceNbrData (const mfem::ParFiniteElementSpace *trial_space, const mfem::ParGridFunction &trial_pgf, const int LSize, mfem::Vector &input_L) |
| helper functional to reorder the ordering of FaceNbrData for L2 space to byVDIM and append this vector to the end of local dof vector, which will result in a vector in form [ — L — | — FND — ] | |
| void | smith::rearrangeFaceNbrDofGlobalIndex (const mfem::ParFiniteElementSpace *trial_space, mfem::Array< HYPRE_BigInt > &face_nbr_glob_vdof_map) |
| helper functional to reorder the face_nbr_glob_dof_map for L2 space to byVDIM | |
Implementation of the quadrature-function-based functional enabling rapid development of FEM formulations.
Definition in file functional.hpp.