https://mooseframework.inl.gov
TransformGenerator.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 "MeshGenerator.h"
13 #include "MooseEnum.h"
14 
15 /*
16  * A mesh generator that applies an affine transformation (rotation, translation, scaling) to the
17  * mesh
18  */
20 {
21 public:
23 
25 
26  std::unique_ptr<MeshBase> generate() override;
27 
28 protected:
30  std::unique_ptr<MeshBase> & _input;
33 
42  void rotateExtrinsic(MeshBase & mesh, const Real alpha, const Real beta, const Real gamma);
43 
50  void rotateWithMatrix(MeshBase & mesh, const GenericRealTensorValue<false> & rotation_matrix);
51 };
const MooseEnum _transform
the transform to apply to the mesh
static InputParameters validParams()
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseBase.h:131
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
Moose::GenericType< RealTensorValue, is_ad > GenericRealTensorValue
Definition: MooseTypes.h:699
TransformGenerator(const InputParameters &parameters)
std::unique_ptr< MeshBase > & _input
the input mesh
void rotateExtrinsic(MeshBase &mesh, const Real alpha, const Real beta, const Real gamma)
Rotate the mesh using extrinsic rotation with given angles.
std::unique_ptr< MeshBase > generate() override
Generate / modify the mesh.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition: MooseEnum.h:54
void rotateWithMatrix(MeshBase &mesh, const GenericRealTensorValue< false > &rotation_matrix)
Rotate a mesh using a given rotation matrix.
MeshGenerators are objects that can modify or add to an existing mesh.
Definition: MeshGenerator.h:33