https://mooseframework.inl.gov
Loading...
Searching...
No Matches
SmoothSuperellipsoidBaseIC.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
12#include "InitialCondition.h"
13#include "MooseRandom.h"
14
23{
24public:
26
28
29 virtual Real value(const Point & p);
30 virtual RealGradient gradient(const Point & p);
31
32 virtual void initialSetup();
33
34protected:
35 virtual Real
36 computeSuperellipsoidValue(const Point & p, const Point & center, Real a, Real b, Real c, Real n);
38 const Point & p, const Point & center, Real a, Real b, Real c, Real n);
40 const Point & p, const Point & center, Real a, Real b, Real c, Real n);
41
44 virtual void computeSuperellipsoidCenters() = 0;
45
47
53
54 unsigned int _num_dim;
55
56 std::vector<Point> _centers;
57 std::vector<Real> _as;
58 std::vector<Real> _bs;
59 std::vector<Real> _cs;
60 std::vector<Real> _ns;
61
63};
const Real p
Point center
const InputParameters & parameters() const
SmoothSuperellipsoidBaseIC is the base class for all initial conditions that create superellipsoids.
virtual void computeSuperellipsoidSemiaxes()=0
static InputParameters validParams()
virtual void computeSuperellipsoidCenters()=0
virtual Real computeSuperellipsoidInverseValue(const Point &p, const Point &center, Real a, Real b, Real c, Real n)
virtual RealGradient gradient(const Point &p)
virtual Real computeSuperellipsoidValue(const Point &p, const Point &center, Real a, Real b, Real c, Real n)
RealGradient computeSuperellipsoidGradient(const Point &p, const Point &center, Real a, Real b, Real c, Real n)
virtual void computeSuperellipsoidExponents()=0
virtual Real value(const Point &p)