https://mooseframework.inl.gov
MultiSmoothSuperellipsoidIC.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 
13 
20 {
21 public:
23 
25 
26  virtual void initialSetup();
27 
28 protected:
29  virtual void computeSuperellipsoidSemiaxes();
30  virtual void computeSuperellipsoidCenters();
31  virtual void computeSuperellipsoidExponents();
32 
33  virtual bool ellipsoidsOverlap(unsigned int i, unsigned int j);
34  virtual bool checkExtremes(unsigned int i, unsigned int j);
35 
36  const unsigned int _max_num_tries;
37  unsigned int _gk;
38 
40  const bool _prevent_overlap;
41  const bool _check_extremes;
43 
44  Point _bottom_left;
45  Point _top_right;
46  Point _range;
47 
48  std::vector<unsigned int> _numbub;
49  std::vector<Real> _bubspac;
50  std::vector<Real> _exponent;
51  std::vector<Real> _semiaxis_a;
52  std::vector<Real> _semiaxis_b;
53  std::vector<Real> _semiaxis_c;
54  std::vector<Real> _semiaxis_a_variation;
55  std::vector<Real> _semiaxis_b_variation;
56  std::vector<Real> _semiaxis_c_variation;
57 };
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...
static InputParameters validParams()
virtual bool ellipsoidsOverlap(unsigned int i, unsigned int j)
MultiSmoothSuperellipsoidIC(const InputParameters &parameters)
const InputParameters & parameters() const
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
MultismoothSuperellipsoidIC creates multiple SmoothSuperellipsoid (number = numbub) that are randomly...