16 #include "libmesh/parallel_algebra.h" 17 #include "libmesh/mesh.h" 18 #include "libmesh/elem.h" 19 #include "libmesh/fe.h" 32 "Automatically generates sub-App positions from the elemental quadrature points, with the " 33 "default quadrature, in the parent mesh.");
50 for (
auto & elem :
mesh.active_local_element_ptr_range())
53 const FEFamily mapping_family = FEMap::map_fe_type(*elem);
54 FEType fe_type(elem->default_order(), mapping_family);
58 std::unique_ptr<FEBase> fe(
FEBase::build(elem->dim(), fe_type));
61 fe->attach_quadrature_rule(qrule.get());
66 const std::vector<Point> & q_points = fe->get_xyz();
70 for (
const auto & q : q_points)
std::unique_ptr< FEGenericBase< Real > > build(const unsigned int dim, const FEType &fet)
void allgather(const T &send_data, std::vector< T, A > &recv_data) const
static InputParameters validParams()
const std::string & _name
The name of this class.
static InputParameters validParams()
const Parallel::Communicator & comm() const
MultiApp Implementation for Transient Apps.
registerMooseObject("MooseApp", QuadraturePointMultiApp)
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
FEProblemBase & _fe_problem
The FEProblemBase this MultiApp is part of.
QuadraturePointMultiApp(const InputParameters ¶meters)
static InputParameters validParams()
std::unique_ptr< QBase > default_quadrature_rule(const unsigned int dim, const int extraorder=0) const
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
An interface that restricts an object to subdomains via the 'blocks' input parameter.
virtual MooseMesh & mesh() override
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
std::vector< Point > _positions
The positions of all of the apps, using input constant vectors (to be deprecated) ...
void fillPositions() override
must fill in _positions with the positions of the sub-aps
bool hasBlocks(const SubdomainName &name) const
Test if the supplied block name is valid for this object.
Automatically generates sub-App positions with elemental quadrature points of the parent mesh...