24#ifndef DUMUX_DISCRETIZATION_ROTATION_SYMMETRIC_SUBCONTROLVOLUME_HH
25#define DUMUX_DISCRETIZATION_ROTATION_SYMMETRIC_SUBCONTROLVOLUME_HH
27#warning "This header is deprecated and will be removed after release 3.3"
39template<
class SubControlVolume, RotationPolicy rotationPolicy>
48template<
class SubControlVolume>
50:
public SubControlVolume
52 using Scalar =
typename SubControlVolume::Traits::Scalar;
53 static_assert(SubControlVolume::Traits::Geometry::mydimension == 1,
"Rotation symmetric scv with disc policy only works with 1d grids!");
54 static_assert(SubControlVolume::Traits::Geometry::coorddimension == 1,
"Rotation symmetric scv with disc policy only works with 1d grids!");
57 using SubControlVolume::SubControlVolume;
63 const auto radius0 = this->corner(0)[0];
64 const auto radius1 = this->corner(1)[0];
65 return M_PI*abs(radius1*radius1 - radius0*radius0);
75template<
class SubControlVolume>
77:
public SubControlVolume
79 using Scalar =
typename SubControlVolume::Traits::Scalar;
80 static_assert(SubControlVolume::Traits::Geometry::mydimension == 1,
"Rotation symmetric scv with ball policy only works with 1d grids!");
81 static_assert(SubControlVolume::Traits::Geometry::coorddimension == 1,
"Rotation symmetric scv with ball policy only works with 1d grids!");
84 using SubControlVolume::SubControlVolume;
90 const auto radius0 = this->corner(0)[0];
91 const auto radius1 = this->corner(1)[0];
92 return 4.0/3.0*M_PI*abs(radius1*radius1*radius1 - radius0*radius0*radius0);
103template<
class SubControlVolume>
105:
public SubControlVolume
107 using Scalar =
typename SubControlVolume::Traits::Scalar;
108 static_assert(SubControlVolume::Traits::Geometry::mydimension == 2,
"Rotation symmetric scv with toroid policy only works with 2d grids!");
109 static_assert(SubControlVolume::Traits::Geometry::coorddimension == 2,
"Rotation symmetric scv with toroid policy only works with 2d grids!");
112 using SubControlVolume::SubControlVolume;
117 const auto radius = this->center()[0];
118 return SubControlVolume::volume()*2.0*M_PI*radius;
Rotation policy for defining rotational symmetric grid geometries.
RotationPolicy
Rotation policies.
Definition: rotationpolicy.hh:39
Traits extracting the public Extrusion type from T Defaults to NoExtrusion if no such type is found.
Definition: extrusion.hh:166
Wrapper to make a sub control volume rotation symmetric.
Definition: rotationsymmetricscv.hh:40
Scalar volume() const
The volume of the sub control volume (difference between two disks)
Definition: rotationsymmetricscv.hh:60
Scalar volume() const
The volume of the sub control volume (difference between two balls)
Definition: rotationsymmetricscv.hh:87
Scalar volume() const
The volume of the sub control volume (Guldinus theorem)
Definition: rotationsymmetricscv.hh:115