https://mooseframework.inl.gov
FunctionPeriodicBoundary.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 #include "Moose.h"
13 
14 // libMesh
15 #include "libmesh/point.h"
16 #include "libmesh/periodic_boundary_base.h"
17 
18 #include <vector>
19 
20 class FEProblemBase;
21 class Function;
22 
28 {
29 public:
33  FunctionPeriodicBoundary(FEProblemBase & subproblem, std::vector<std::string> fn_names);
34 
41 
47  virtual libMesh::Point get_corresponding_pos(const libMesh::Point & pt) const override;
48 
52  virtual std::unique_ptr<libMesh::PeriodicBoundaryBase> clone(TransformationType t) const override;
53 
54 protected:
55  // /// The dimension of the problem (says which _tr_XYZ member variables are active)
56  unsigned int _dim;
57 
59  const Function * const _tr_x;
60 
62  const Function * const _tr_y;
63 
65  const Function * const _tr_z;
66 
70  void init();
71 };
const Function *const _tr_y
Pointer to Function for y-component of the boundary.
Base class for function objects.
Definition: Function.h:36
virtual std::unique_ptr< libMesh::PeriodicBoundaryBase > clone(TransformationType t) const override
Required interface, this class must be able to clone itself.
Periodic boundary for calculation periodic BC on domains where the translation is given by functions...
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
const Function *const _tr_x
Pointer to Function for x-component of the boundary.
void init()
An initialization method to make certain that initialSetup() of a function prior to value() ...
const Function *const _tr_z
Pointer to Function for z-component of the boundary.
virtual libMesh::Point get_corresponding_pos(const libMesh::Point &pt) const override
Get the translation based on point &#39;pt&#39;.
FunctionPeriodicBoundary(FEProblemBase &subproblem, std::vector< std::string > fn_names)
Initialize the periodic boundary with three functions.