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())
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)
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application.
registerMooseObject("MooseApp", QuadraturePointMultiApp)
An interface that restricts an object to subdomains via the 'blocks' input parameter.
bool hasBlocks(const SubdomainName &name) const
Test if the supplied block name is valid for this object.
static InputParameters validParams()
virtual MooseMesh & mesh() override
const std::string & _name
The name of this class.
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
MeshBase & getMesh()
Accessor for the underlying libMesh Mesh object.
FEProblemBase & _fe_problem
The FEProblemBase this MultiApp is part of.
std::vector< Point > _positions
The positions of all of the apps, using input constant vectors (to be deprecated)
Automatically generates sub-App positions with elemental quadrature points of the parent mesh.
static InputParameters validParams()
QuadraturePointMultiApp(const InputParameters ¶meters)
void fillPositions() override
must fill in _positions with the positions of the sub-aps
void allgather(const T &send_data, std::vector< T, A > &recv_data) const
MultiApp Implementation for Transient Apps.
static InputParameters validParams()
std::unique_ptr< FEGenericBase< Real > > build(const unsigned int dim, const FEType &fet)
static FEFamily map_fe_type(const Elem &elem)
std::unique_ptr< QBase > default_quadrature_rule(const unsigned int dim, const int extraorder=0) const
const Parallel::Communicator & comm() const
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...