https://mooseframework.inl.gov
MultiAppGeneralFieldShapeEvaluationTransfer.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
13 #include "libmesh/mesh_function.h"
14 #include "MooseHashing.h"
15 
20 {
21 public:
23 
25 
26 protected:
27  virtual void prepareEvaluationOfInterpValues(const unsigned int var_index) override;
28 
29  virtual void
30  evaluateInterpValues(const unsigned int /*var_index*/,
31  const std::vector<std::pair<Point, unsigned int>> & incoming_points,
32  std::vector<std::pair<Real, Real>> & outgoing_vals) override;
33 
34 private:
35  bool usesMooseAppCoordTransform() const override { return true; }
36  /*
37  * Build mesh functions local to the domain
38  * @param[in] var_name the variable to build the mesh functions for
39  * @param[out] the mesh functions
40  */
41  void buildMeshFunctions(const unsigned int var_index,
42  std::vector<libMesh::MeshFunction> & local_meshfuns);
43 
44  /*
45  * Evaluate interpolation values for incoming points
46  * @param[in] bounding boxes to restrict the evaluation domain
47  * @param[in] the mesh functions to use for evaluation
48  * @param[in] the points to evaluate the variable shape functions at
49  * @param[out] the values of the variables
50  */
52  const std::vector<BoundingBox> & local_bboxes,
53  std::vector<libMesh::MeshFunction> & local_meshfuns,
54  const std::vector<std::pair<Point, unsigned int>> & incoming_points,
55  std::vector<std::pair<Real, Real>> & outgoing_vals);
56 
57  /*
58  * Bounding boxes
59  */
60  std::vector<libMesh::BoundingBox> _local_bboxes;
61  /*
62  * Local mesh functions
63  */
64  std::vector<libMesh::MeshFunction> _local_meshfuns;
65 };
void buildMeshFunctions(const unsigned int var_index, std::vector< libMesh::MeshFunction > &local_meshfuns)
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseBase.h:131
void evaluateInterpValuesWithMeshFunctions(const std::vector< BoundingBox > &local_bboxes, std::vector< libMesh::MeshFunction > &local_meshfuns, const std::vector< std::pair< Point, unsigned int >> &incoming_points, std::vector< std::pair< Real, Real >> &outgoing_vals)
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
virtual void prepareEvaluationOfInterpValues(const unsigned int var_index) override
Evaluates origin shape functions to compute the target variables.
bool usesMooseAppCoordTransform() const override
Whether this transfer handles non-translation-based transformations, e.g.
virtual void evaluateInterpValues(const unsigned int, const std::vector< std::pair< Point, unsigned int >> &incoming_points, std::vector< std::pair< Real, Real >> &outgoing_vals) override
It is a general field transfer.