www.mooseframework.org
MultiSmoothSuperellipsoidIC.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 
13 
14 // Forward Declarations
16 
17 template <>
19 
26 {
27 public:
28  MultiSmoothSuperellipsoidIC(const InputParameters & parameters);
29 
30  virtual void initialSetup();
31 
32 protected:
33  virtual void computeSuperellipsoidSemiaxes();
34  virtual void computeSuperellipsoidCenters();
35  virtual void computeSuperellipsoidExponents();
36 
37  virtual bool ellipsoidsOverlap(unsigned int i, unsigned int j);
38  virtual bool checkExtremes(unsigned int i, unsigned int j);
39 
40  const unsigned int _max_num_tries;
41  unsigned int _gk;
42 
43  const MooseEnum _semiaxis_variation_type;
44  const bool _prevent_overlap;
45  const bool _check_extremes;
47 
48  Point _bottom_left;
49  Point _top_right;
50  Point _range;
51 
52  std::vector<unsigned int> _numbub;
53  std::vector<Real> _bubspac;
54  std::vector<Real> _exponent;
55  std::vector<Real> _semiaxis_a;
56  std::vector<Real> _semiaxis_b;
57  std::vector<Real> _semiaxis_c;
58  std::vector<Real> _semiaxis_a_variation;
59  std::vector<Real> _semiaxis_b_variation;
60  std::vector<Real> _semiaxis_c_variation;
61 };
62 
MultiSmoothSuperellipsoidIC::_gk
unsigned int _gk
Definition: MultiSmoothSuperellipsoidIC.h:41
MultiSmoothSuperellipsoidIC::_exponent
std::vector< Real > _exponent
Definition: MultiSmoothSuperellipsoidIC.h:54
MultiSmoothSuperellipsoidIC::_check_extremes
const bool _check_extremes
Definition: MultiSmoothSuperellipsoidIC.h:45
MultiSmoothSuperellipsoidIC::MultiSmoothSuperellipsoidIC
MultiSmoothSuperellipsoidIC(const InputParameters &parameters)
Definition: MultiSmoothSuperellipsoidIC.C:81
MultiSmoothSuperellipsoidIC::_vary_axes_independently
const bool _vary_axes_independently
Definition: MultiSmoothSuperellipsoidIC.h:46
MultiSmoothSuperellipsoidIC::_prevent_overlap
const bool _prevent_overlap
Definition: MultiSmoothSuperellipsoidIC.h:44
MultiSmoothSuperellipsoidIC::_bubspac
std::vector< Real > _bubspac
Definition: MultiSmoothSuperellipsoidIC.h:53
MultiSmoothSuperellipsoidIC::_numbub
std::vector< unsigned int > _numbub
Definition: MultiSmoothSuperellipsoidIC.h:52
MultiSmoothSuperellipsoidIC::computeSuperellipsoidExponents
virtual void computeSuperellipsoidExponents()
Definition: MultiSmoothSuperellipsoidIC.C:227
MultiSmoothSuperellipsoidIC::_semiaxis_b_variation
std::vector< Real > _semiaxis_b_variation
Definition: MultiSmoothSuperellipsoidIC.h:59
MultiSmoothSuperellipsoidIC::computeSuperellipsoidCenters
virtual void computeSuperellipsoidCenters()
Definition: MultiSmoothSuperellipsoidIC.C:185
MultiSmoothSuperellipsoidIC::_semiaxis_c_variation
std::vector< Real > _semiaxis_c_variation
Definition: MultiSmoothSuperellipsoidIC.h:60
MultiSmoothSuperellipsoidIC::_semiaxis_a_variation
std::vector< Real > _semiaxis_a_variation
Definition: MultiSmoothSuperellipsoidIC.h:58
MultiSmoothSuperellipsoidIC::_max_num_tries
const unsigned int _max_num_tries
Definition: MultiSmoothSuperellipsoidIC.h:40
MultiSmoothSuperellipsoidIC::_semiaxis_a
std::vector< Real > _semiaxis_a
Definition: MultiSmoothSuperellipsoidIC.h:55
MultiSmoothSuperellipsoidIC
MultismoothSuperellipsoidIC creates multiple SmoothSuperellipsoid (number = numbub) that are randomly...
Definition: MultiSmoothSuperellipsoidIC.h:25
MultiSmoothSuperellipsoidIC::computeSuperellipsoidSemiaxes
virtual void computeSuperellipsoidSemiaxes()
Definition: MultiSmoothSuperellipsoidIC.C:138
MultiSmoothSuperellipsoidIC::_semiaxis_b
std::vector< Real > _semiaxis_b
Definition: MultiSmoothSuperellipsoidIC.h:56
MultiSmoothSuperellipsoidIC::_semiaxis_variation_type
const MooseEnum _semiaxis_variation_type
Definition: MultiSmoothSuperellipsoidIC.h:43
validParams< MultiSmoothSuperellipsoidIC >
InputParameters validParams< MultiSmoothSuperellipsoidIC >()
Definition: MultiSmoothSuperellipsoidIC.C:24
MultiSmoothSuperellipsoidIC::_bottom_left
Point _bottom_left
Definition: MultiSmoothSuperellipsoidIC.h:48
SmoothSuperellipsoidBaseIC
SmoothSuperellipsoidBaseIC is the base class for all initial conditions that create superellipsoids.
Definition: SmoothSuperellipsoidBaseIC.h:28
MultiSmoothSuperellipsoidIC::_semiaxis_c
std::vector< Real > _semiaxis_c
Definition: MultiSmoothSuperellipsoidIC.h:57
MultiSmoothSuperellipsoidIC::_top_right
Point _top_right
Definition: MultiSmoothSuperellipsoidIC.h:49
MultiSmoothSuperellipsoidIC::ellipsoidsOverlap
virtual bool ellipsoidsOverlap(unsigned int i, unsigned int j)
Definition: MultiSmoothSuperellipsoidIC.C:237
MultiSmoothSuperellipsoidIC::initialSetup
virtual void initialSetup()
Definition: MultiSmoothSuperellipsoidIC.C:101
MultiSmoothSuperellipsoidIC::checkExtremes
virtual bool checkExtremes(unsigned int i, unsigned int j)
Definition: MultiSmoothSuperellipsoidIC.C:279
MultiSmoothSuperellipsoidIC::_range
Point _range
Definition: MultiSmoothSuperellipsoidIC.h:50
SmoothSuperellipsoidBaseIC.h