Cardinal
SymmetryPointGenerator.h
Go to the documentation of this file.
1 /********************************************************************/
2 /* SOFTWARE COPYRIGHT NOTIFICATION */
3 /* Cardinal */
4 /* */
5 /* (c) 2021 UChicago Argonne, LLC */
6 /* ALL RIGHTS RESERVED */
7 /* */
8 /* Prepared by UChicago Argonne, LLC */
9 /* Under Contract No. DE-AC02-06CH11357 */
10 /* With the U. S. Department of Energy */
11 /* */
12 /* Prepared by Battelle Energy Alliance, LLC */
13 /* Under Contract No. DE-AC07-05ID14517 */
14 /* With the U. S. Department of Energy */
15 /* */
16 /* See LICENSE for full restrictions */
17 /********************************************************************/
18 
19 #pragma once
20 
21 #include "ThreadedGeneralUserObject.h"
22 
28 class SymmetryPointGenerator : public ThreadedGeneralUserObject
29 {
30 public:
31  static InputParameters validParams();
32 
33  SymmetryPointGenerator(const InputParameters & parameters);
34 
35  virtual void initialize() {}
36  virtual void finalize() {}
37  virtual void execute() {}
38 
45  bool onPositiveSideOfPlane(const Point & p, const Point & normal) const;
46 
53  Point reflectPointAcrossPlane(const Point & p, const Point & normal) const;
54 
60  Point transformPoint(const Point & p) const;
61 
67  int sector(const Point & p) const;
68 
69 protected:
72 
74  Point _normal;
75 
78 
80  Real _angle;
81 
83  Point _zero_theta;
84 
87 };
component::normal
@ normal
Definition: CardinalEnums.h:80
SymmetryPointGenerator::finalize
virtual void finalize()
Definition: SymmetryPointGenerator.h:36
SymmetryPointGenerator::reflectPointAcrossPlane
Point reflectPointAcrossPlane(const Point &p, const Point &normal) const
Definition: SymmetryPointGenerator.C:82
SymmetryPointGenerator::onPositiveSideOfPlane
bool onPositiveSideOfPlane(const Point &p, const Point &normal) const
Definition: SymmetryPointGenerator.C:76
SymmetryPointGenerator::_angle
Real _angle
Rotation angle.
Definition: SymmetryPointGenerator.h:80
SymmetryPointGenerator::_normal
Point _normal
Normal defining the first symmetry plane.
Definition: SymmetryPointGenerator.h:74
SymmetryPointGenerator::_rotational_axis
Point _rotational_axis
Axis of angular rotation symmetry.
Definition: SymmetryPointGenerator.h:77
SymmetryPointGenerator::sector
int sector(const Point &p) const
Definition: SymmetryPointGenerator.C:89
SymmetryPointGenerator::_zero_theta
Point _zero_theta
Line defining the "zero-theta" line for rotational symmetry.
Definition: SymmetryPointGenerator.h:83
SymmetryPointGenerator::_reflection_normal
Point _reflection_normal
Normal defining the reflection plane, for odd-numbered sectors.
Definition: SymmetryPointGenerator.h:86
SymmetryPointGenerator::validParams
static InputParameters validParams()
Definition: SymmetryPointGenerator.C:26
SymmetryPointGenerator::transformPoint
Point transformPoint(const Point &p) const
Definition: SymmetryPointGenerator.C:99
SymmetryPointGenerator::SymmetryPointGenerator
SymmetryPointGenerator(const InputParameters &parameters)
Definition: SymmetryPointGenerator.C:44
SymmetryPointGenerator::execute
virtual void execute()
Definition: SymmetryPointGenerator.h:37
SymmetryPointGenerator::initialize
virtual void initialize()
Definition: SymmetryPointGenerator.h:35
SymmetryPointGenerator::_rotational_symmetry
const bool _rotational_symmetry
Whether rotational symmetry is applied; otherwise, the domain is mirror-symmetric.
Definition: SymmetryPointGenerator.h:71
SymmetryPointGenerator
Definition: SymmetryPointGenerator.h:28