https://mooseframework.inl.gov
Loading...
Searching...
No Matches
SmoothCircleBaseIC.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
21{
22public:
24
26
27 virtual Real value(const Point & p);
28 virtual RealGradient gradient(const Point & p);
29
30 virtual void initialSetup();
31
32protected:
33 virtual Real computeCircleValue(const Point & p, const Point & center, const Real & radius);
34 virtual RealGradient
35 computeCircleGradient(const Point & p, const Point & center, const Real & radius);
36
37 virtual void computeCircleRadii() = 0;
38 virtual void computeCircleCenters() = 0;
39
41
47
48 unsigned int _num_dim;
49
50 std::vector<Point> _centers;
51 std::vector<Real> _radii;
52
53 enum class ProfileType
54 {
55 COS,
56 TANH
58
60};
const Real p
Point center
const InputParameters & parameters() const
SmoothcircleBaseIC is the base class for all initial conditions that create circles.
virtual Real computeCircleValue(const Point &p, const Point &center, const Real &radius)
virtual void computeCircleCenters()=0
virtual RealGradient computeCircleGradient(const Point &p, const Point &center, const Real &radius)
virtual Real value(const Point &p)
static InputParameters validParams()
virtual RealGradient gradient(const Point &p)
std::vector< Real > _radii
std::vector< Point > _centers
enum SmoothCircleBaseIC::ProfileType _profile
virtual void computeCircleRadii()=0
virtual void initialSetup()
const Real radius