https://mooseframework.inl.gov
Loading...
Searching...
No Matches
MultiAppGeometricInterpolationTransfer.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
12// MOOSE includes
15
16#include "libmesh/mesh_base.h"
17
19namespace libMesh
20{
21template <unsigned int>
22class InverseDistanceInterpolation;
23}
24
29{
30public:
32
34
35 virtual void execute() override;
36
37protected:
39 FEProblemBase & from_problem,
40 const MooseVariableFieldBase & from_var,
41 const MultiAppCoordTransform & from_app_transform,
43
45 FEProblemBase & to_problem,
47 NumericVector<Real> & to_solution,
48 const MultiAppCoordTransform & to_app_transform,
49 const std::unique_ptr<libMesh::InverseDistanceInterpolation<Moose::dim>> & idi);
50
51 void
52 subdomainIDsNode(MooseMesh & mesh, const Node & node, std::set<subdomain_id_type> & subdomainids);
53
55 std::unordered_map<dof_id_type, Point> & transformation);
56
57 unsigned int _num_points;
58 Real _power;
60 Real _radius;
61 // How much we want to shrink gap
63 // Which mesh we want to shrink
65 // Which gap blocks want to exclude during solution transfers
66 std::vector<SubdomainName> _exclude_gap_blocks;
67 // How small we can consider two points are identical
69
70private:
71 bool usesMooseAppCoordTransform() const override { return true; }
72};
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
const InputParameters & parameters() const
Get the parameters of the object.
Definition MooseBase.h:131
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition MooseEnum.h:55
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition MooseMesh.h:95
This class provides an interface for common operations on field variables of both FE and FV types wit...
Transfers variables on possibly different meshes while conserving a user defined property (Postproces...
This class contains transformation information that only exists in a context in which there are multi...
Interpolate variable values using geometry/mesh-based coefficients.
void interpolateTargetPoints(FEProblemBase &to_problem, MooseVariableFieldBase &to_var, NumericVector< Real > &to_solution, const MultiAppCoordTransform &to_app_transform, const std::unique_ptr< libMesh::InverseDistanceInterpolation< Moose::dim > > &idi)
void computeTransformation(const MooseMesh &mesh, std::unordered_map< dof_id_type, Point > &transformation)
void fillSourceInterpolationPoints(FEProblemBase &from_problem, const MooseVariableFieldBase &from_var, const MultiAppCoordTransform &from_app_transform, std::unique_ptr< libMesh::InverseDistanceInterpolation< Moose::dim > > &idi)
void subdomainIDsNode(MooseMesh &mesh, const Node &node, std::set< subdomain_id_type > &subdomainids)
virtual void execute() override
Execute the transfer.
bool usesMooseAppCoordTransform() const override
Whether this transfer handles non-translation-based transformations, e.g.
MeshBase & mesh
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...