https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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{
21public:
23
25
26 std::unique_ptr<MeshBase> generate() override;
27
28protected:
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};
Moose::GenericType< RealTensorValue, is_ad > GenericRealTensorValue
Definition MooseTypes.h:704
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
MeshGenerators are objects that can modify or add to an existing mesh.
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
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 > & _input
the input mesh
void rotateWithMatrix(MeshBase &mesh, const GenericRealTensorValue< false > &rotation_matrix)
Rotate a mesh using a given rotation matrix.
const MooseEnum _transform
the transform to apply to the mesh
std::unique_ptr< MeshBase > generate() override
Generate / modify the mesh.
static InputParameters validParams()