22 std::vector<std::string> fn_names)
23 : _dim(fn_names.size()),
24 _tr_x(&feproblem.getFunction(fn_names[0])),
25 _tr_y(_dim > 1 ? &feproblem.getFunction(fn_names[1]) : NULL),
26 _tr_z(_dim > 2 ? &feproblem.getFunction(fn_names[2]) : NULL)
31 mooseError(
"Transform function has to have the same dimension as the problem being solved.");
38 : PeriodicBoundaryBase(o), _dim(o._dim), _tr_x(o._tr_x), _tr_y(o._tr_y), _tr_z(o._tr_z)
58 mooseAssert(
_tr_y,
"Must provide a function to map y in 2D.");
62 mooseAssert(
_tr_y,
"Must provide a function to map y in 2D.");
63 mooseAssert(
_tr_z,
"Must provide a function to map z in 3D.");
74 std::unique_ptr<PeriodicBoundaryBase>
78 mooseError(
"No way to automatically clone() an inverse FunctionPeriodicBoundary object");
80 return std::make_unique<FunctionPeriodicBoundary>(*this);
const Function *const _tr_y
Pointer to Function for y-component of the boundary.
Base class for function objects.
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
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.
virtual unsigned int dimension() const
Returns MeshBase::mesh_dimension(), (not MeshBase::spatial_dimension()!) of the underlying libMesh me...
virtual Point get_corresponding_pos(const Point &pt) const override
Get the translation based on point 'pt'.
virtual std::unique_ptr< PeriodicBoundaryBase > clone(TransformationType t) const override
Required interface, this class must be able to clone itself.
void init()
An initialization method to make certain that initialSetup() of a function prior to value() ...
Threads::spin_mutex parsed_function_mutex
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual MooseMesh & mesh() override
const Function *const _tr_z
Pointer to Function for z-component of the boundary.
virtual Real value(Real t, const Point &p) const
Override this to evaluate the scalar function at point (t,x,y,z), by default this returns zero...
FunctionPeriodicBoundary(FEProblemBase &subproblem, std::vector< std::string > fn_names)
Initialize the periodic boundary with three functions.