www.mooseframework.org
SmoothSuperellipsoidBaseIC.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 
12 #include "InitialCondition.h"
13 #include "MooseRandom.h"
14 
15 // Forward Declarations
17 
18 template <>
20 
28 class SmoothSuperellipsoidBaseIC : public InitialCondition
29 {
30 public:
31  SmoothSuperellipsoidBaseIC(const InputParameters & parameters);
32 
33  virtual Real value(const Point & p);
34  virtual RealGradient gradient(const Point & p);
35 
36  virtual void initialSetup();
37 
38 protected:
39  virtual Real
40  computeSuperellipsoidValue(const Point & p, const Point & center, Real a, Real b, Real c, Real n);
42  const Point & p, const Point & center, Real a, Real b, Real c, Real n);
44  const Point & p, const Point & center, Real a, Real b, Real c, Real n);
45 
46  virtual void computeSuperellipsoidSemiaxes() = 0;
47  virtual void computeSuperellipsoidExponents() = 0;
48  virtual void computeSuperellipsoidCenters() = 0;
49 
50  MooseMesh & _mesh;
51 
52  Real _invalue;
53  Real _outvalue;
55  Real _int_width;
57 
58  unsigned int _num_dim;
59 
60  std::vector<Point> _centers;
61  std::vector<Real> _as;
62  std::vector<Real> _bs;
63  std::vector<Real> _cs;
64  std::vector<Real> _ns;
65 
66  MooseRandom _random;
67 };
68 
SmoothSuperellipsoidBaseIC::_centers
std::vector< Point > _centers
Definition: SmoothSuperellipsoidBaseIC.h:60
SmoothSuperellipsoidBaseIC::_int_width
Real _int_width
Definition: SmoothSuperellipsoidBaseIC.h:55
SmoothSuperellipsoidBaseIC::_mesh
MooseMesh & _mesh
Definition: SmoothSuperellipsoidBaseIC.h:50
SmoothSuperellipsoidBaseIC::_outvalue
Real _outvalue
Definition: SmoothSuperellipsoidBaseIC.h:53
libMesh::RealGradient
VectorValue< Real > RealGradient
Definition: GrainForceAndTorqueInterface.h:17
SmoothSuperellipsoidBaseIC::computeSuperellipsoidExponents
virtual void computeSuperellipsoidExponents()=0
SmoothSuperellipsoidBaseIC::initialSetup
virtual void initialSetup()
Definition: SmoothSuperellipsoidBaseIC.C:51
SmoothSuperellipsoidBaseIC::computeSuperellipsoidValue
virtual Real computeSuperellipsoidValue(const Point &p, const Point &center, Real a, Real b, Real c, Real n)
Definition: SmoothSuperellipsoidBaseIC.C:114
SmoothSuperellipsoidBaseIC::computeSuperellipsoidInverseValue
virtual Real computeSuperellipsoidInverseValue(const Point &p, const Point &center, Real a, Real b, Real c, Real n)
Definition: SmoothSuperellipsoidBaseIC.C:155
SmoothSuperellipsoidBaseIC::_num_dim
unsigned int _num_dim
Definition: SmoothSuperellipsoidBaseIC.h:58
SmoothSuperellipsoidBaseIC::SmoothSuperellipsoidBaseIC
SmoothSuperellipsoidBaseIC(const InputParameters &parameters)
Definition: SmoothSuperellipsoidBaseIC.C:37
SmoothSuperellipsoidBaseIC::gradient
virtual RealGradient gradient(const Point &p)
Definition: SmoothSuperellipsoidBaseIC.C:89
SmoothSuperellipsoidBaseIC::computeSuperellipsoidSemiaxes
virtual void computeSuperellipsoidSemiaxes()=0
SmoothSuperellipsoidBaseIC::_zero_gradient
bool _zero_gradient
Definition: SmoothSuperellipsoidBaseIC.h:56
SmoothSuperellipsoidBaseIC::_as
std::vector< Real > _as
Definition: SmoothSuperellipsoidBaseIC.h:61
SmoothSuperellipsoidBaseIC::_random
MooseRandom _random
Definition: SmoothSuperellipsoidBaseIC.h:66
SmoothSuperellipsoidBaseIC::_nestedvalue
Real _nestedvalue
Definition: SmoothSuperellipsoidBaseIC.h:54
SmoothSuperellipsoidBaseIC::_invalue
Real _invalue
Definition: SmoothSuperellipsoidBaseIC.h:52
SmoothSuperellipsoidBaseIC
SmoothSuperellipsoidBaseIC is the base class for all initial conditions that create superellipsoids.
Definition: SmoothSuperellipsoidBaseIC.h:28
SmoothSuperellipsoidBaseIC::_ns
std::vector< Real > _ns
Definition: SmoothSuperellipsoidBaseIC.h:64
SmoothSuperellipsoidBaseIC::_bs
std::vector< Real > _bs
Definition: SmoothSuperellipsoidBaseIC.h:62
validParams< SmoothSuperellipsoidBaseIC >
InputParameters validParams< SmoothSuperellipsoidBaseIC >()
Definition: SmoothSuperellipsoidBaseIC.C:18
SmoothSuperellipsoidBaseIC::value
virtual Real value(const Point &p)
Definition: SmoothSuperellipsoidBaseIC.C:72
SmoothSuperellipsoidBaseIC::_cs
std::vector< Real > _cs
Definition: SmoothSuperellipsoidBaseIC.h:63
SmoothSuperellipsoidBaseIC::computeSuperellipsoidGradient
RealGradient computeSuperellipsoidGradient(const Point &p, const Point &center, Real a, Real b, Real c, Real n)
Definition: SmoothSuperellipsoidBaseIC.C:195
SmoothSuperellipsoidBaseIC::computeSuperellipsoidCenters
virtual void computeSuperellipsoidCenters()=0