12#ifndef DUMUX_PNM_BASE_PORE_PROPERTIES_HH
13#define DUMUX_PNM_BASE_PORE_PROPERTIES_HH
17#include <dune/common/exceptions.hh>
39 default: DUNE_THROW(Dune::InvalidStateException,
"Unknown shape!");
55 else DUNE_THROW(Dune::InvalidStateException, s <<
" is not a valid shape");
65 case Shape::cube:
return 8*inscribedRadius*inscribedRadius*inscribedRadius;
break;
66 case Shape::sphere:
return 4.0/3.0*M_PI*inscribedRadius*inscribedRadius*inscribedRadius;
break;
67 case Shape::circle:
return M_PI*inscribedRadius*inscribedRadius;
break;
68 case Shape::square:
return 4.0*inscribedRadius*inscribedRadius;
break;
69 case Shape::tetrahedron:
return 13.85*inscribedRadius*inscribedRadius*inscribedRadius;
break;
70 case Shape::octahedron:
return 6.93*inscribedRadius*inscribedRadius*inscribedRadius;
break;
71 case Shape::icosahedron:
return 5.05*inscribedRadius*inscribedRadius*inscribedRadius;
break;
72 case Shape::dodecahedron:
return 5.55*inscribedRadius*inscribedRadius*inscribedRadius;
break;
73 default : DUNE_THROW(Dune::InvalidStateException,
"Unsupported geometry");
84 case Shape::cylinder:
return M_PI*inscribedRadius*inscribedRadius*height;
break;
85 default : DUNE_THROW(Dune::InvalidStateException,
"Unsupported geometry");
Definition: poreproperties.hh:19
Shape shapeFromString(const std::string &s)
Get the shape from a string description of the shape.
Definition: poreproperties.hh:44
std::string shapeToString(Shape s)
Get the shape from a string description of the shape.
Definition: poreproperties.hh:26
Scalar volume(Shape shape, Scalar inscribedRadius)
Returns the volume of a given geometry based on the inscribed radius.
Definition: poreproperties.hh:61
Shape
Collection of different pore-body shapes.
Definition: poreproperties.hh:23
constexpr Shape shape(const Scalar shapeFactor) noexcept
Returns the shape for a given shape factor.
Definition: throatproperties.hh:165