Loading [MathJax]/extensions/tex2jax.js
Cardinal
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
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
28class SymmetryPointGenerator : public ThreadedGeneralUserObject
29{
30public:
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
69protected:
72
74 Point _normal;
75
78
80 Real _angle;
81
84
87};
Definition SymmetryPointGenerator.h:29
static InputParameters validParams()
Definition SymmetryPointGenerator.C:26
Point reflectPointAcrossPlane(const Point &p, const Point &normal) const
Definition SymmetryPointGenerator.C:83
bool onPositiveSideOfPlane(const Point &p, const Point &normal) const
Definition SymmetryPointGenerator.C:77
Point _rotational_axis
Axis of angular rotation symmetry.
Definition SymmetryPointGenerator.h:77
Point transformPoint(const Point &p) const
Definition SymmetryPointGenerator.C:100
Point _normal
Normal defining the first symmetry plane.
Definition SymmetryPointGenerator.h:74
virtual void finalize()
Definition SymmetryPointGenerator.h:36
Real _angle
Rotation angle.
Definition SymmetryPointGenerator.h:80
Point _reflection_normal
Normal defining the reflection plane, for odd-numbered sectors.
Definition SymmetryPointGenerator.h:86
virtual void execute()
Definition SymmetryPointGenerator.h:37
int sector(const Point &p) const
Definition SymmetryPointGenerator.C:90
Point _zero_theta
Line defining the "zero-theta" line for rotational symmetry.
Definition SymmetryPointGenerator.h:83
const bool _rotational_symmetry
Whether rotational symmetry is applied; otherwise, the domain is mirror-symmetric.
Definition SymmetryPointGenerator.h:71
virtual void initialize()
Definition SymmetryPointGenerator.h:35