www.mooseframework.org
MultiSmoothSuperellipsoidIC.h
Go to the documentation of this file.
1 /****************************************************************/
2 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
3 /* */
4 /* All contents are licensed under LGPL V2.1 */
5 /* See LICENSE for full restrictions */
6 /****************************************************************/
7 #ifndef MULTISMOOTHSUPERELLIPSOIDIC_H
8 #define MULTISMOOTHSUPERELLIPSOIDIC_H
9 
11 
12 // Forward Declarations
14 
15 template <>
17 
24 {
25 public:
26  MultiSmoothSuperellipsoidIC(const InputParameters & parameters);
27 
28  virtual void initialSetup();
29 
30 protected:
31  virtual void computeSuperellipsoidSemiaxes();
32  virtual void computeSuperellipsoidCenters();
33  virtual void computeSuperellipsoidExponents();
34 
35  virtual bool ellipsoidsOverlap(unsigned int i, unsigned int j);
36  virtual bool checkExtremes(unsigned int i, unsigned int j);
37 
38  const unsigned int _max_num_tries;
39  unsigned int _gk;
40 
41  const MooseEnum _semiaxis_variation_type;
42  const bool _prevent_overlap;
43  const bool _check_extremes;
45 
46  Point _bottom_left;
47  Point _top_right;
48  Point _range;
49 
50  std::vector<unsigned int> _numbub;
51  std::vector<Real> _bubspac;
52  std::vector<Real> _exponent;
53  std::vector<Real> _semiaxis_a;
54  std::vector<Real> _semiaxis_b;
55  std::vector<Real> _semiaxis_c;
56  std::vector<Real> _semiaxis_a_variation;
57  std::vector<Real> _semiaxis_b_variation;
58  std::vector<Real> _semiaxis_c_variation;
59 };
60 
61 #endif // MULTISMOOTHSUPERELLIPSOIDIC_H
virtual bool checkExtremes(unsigned int i, unsigned int j)
std::vector< unsigned int > _numbub
SmoothSuperellipsoidBaseIC is the base class for all initial conditions that create superellipsoids...
virtual bool ellipsoidsOverlap(unsigned int i, unsigned int j)
InputParameters validParams< MultiSmoothSuperellipsoidIC >()
MultiSmoothSuperellipsoidIC(const InputParameters &parameters)
MultismoothSuperellipsoidIC creates multiple SmoothSuperellipsoid (number = numbub) that are randomly...