geometry_base_mod Module Reference

base class for geometrical properties More...

Data Types

interface  Convert2Cartesian_coords_1
 
interface  Convert2Cartesian_coords_2
 
interface  Convert2Cartesian_coords_3
 
interface  Convert2Cartesian_coords_4
 
interface  Convert2Cartesian_vectors_1
 
interface  Convert2Cartesian_vectors_2
 
interface  Convert2Cartesian_vectors_3
 
interface  Convert2Cartesian_vectors_4
 
interface  Convert2Curvilinear_coords_1
 
interface  Convert2Curvilinear_coords_2
 
interface  Convert2Curvilinear_coords_3
 
interface  Convert2Curvilinear_coords_4
 
interface  Convert2Curvilinear_vectors_1
 
interface  Convert2Curvilinear_vectors_2
 
interface  Convert2Curvilinear_vectors_3
 
interface  Convert2Curvilinear_vectors_4
 
interface  Finalize
 
type  geometry_base
 
interface  PositionVector_1
 
interface  PositionVector_2
 
interface  PositionVector_3
 
interface  PositionVector_4
 
interface  Radius_1
 
interface  Radius_2
 
interface  Radius_3
 
interface  Radius_4
 
interface  ScaleFactors_1
 
interface  ScaleFactors_2
 
interface  ScaleFactors_3
 
interface  ScaleFactors_4
 

Functions/Subroutines

subroutine initgeometry (this, gnum, gname, config)
 Constructor of generic geometry module. More...
 
pure real function getscale1 (this)
 
pure real function getscale2 (this, i)
 
pure subroutine setscale1 (this, gp)
 
pure subroutine setscale2 (this, gp, gp2)
 
pure subroutine setscale3 (this, gp, gp2, gp3)
 
pure subroutine scalefactors_0 (this, coords, hx, hy, hz)
 Compute scale factors. More...
 
pure subroutine radius_0 (this, coords, radius)
 Compute radial distances to the origin. More...
 
pure subroutine positionvector_0 (this, coords, posvec)
 compute position vector components for all cell positions More...
 
pure subroutine convert2cartesian_coords (this, curv, cart)
 Convert curvilinear to cartesian coordinates. More...
 
pure subroutine convert2curvilinear_coords (this, cart, curv)
 Convert cartesian to curvilinear coordinates. More...
 
pure subroutine convert2cartesian_vectors (this, curv, v_curv, v_cart)
 Convert curvilinear vector components to cartesian vector components. More...
 
pure subroutine convert2curvilinear_vectors (this, curv, v_cart, v_curv)
 Convert cartesian vector components to curvilinear vector components. More...
 
pure subroutine setazimuthindex (this, idx)
 sets the coordinate index of the azimuthal angle More...
 
pure integer function getazimuthindex (this)
 returns the coordinate index of the azimuthal angle More...
 
subroutine finalize_base (this)
 Destructor of generic geometry module. More...
 

Variables

real, parameter, public pi = 3.1415926535897932384626433832795028842
 

Public Attributes

geometries

integer, parameter, public cartesian = 1
 
integer, parameter, public cylindrical = 30
 
integer, parameter, public logcylindrical = 31
 
integer, parameter, public spherical = 40
 
integer, parameter, public logspherical = 41
 

Detailed Description

base class for geometrical properties

Author
Tobias Illenseer
Jannes Klee
Manuel Jung

Function/Subroutine Documentation

◆ convert2cartesian_coords()

pure subroutine geometry_base_mod::convert2cartesian_coords ( class(geometry_base), intent(in)  this,
type(marray_cellvector), intent(in)  curv,
type(marray_cellvector), intent(inout)  cart 
)

Convert curvilinear to cartesian coordinates.

ATTENTION: cart should actually be intent(out), but this breaks the pointer assignment to cartdata1d in the mesh array

Definition at line 545 of file geometry_base.f90.

◆ convert2cartesian_vectors()

pure subroutine geometry_base_mod::convert2cartesian_vectors ( class(geometry_base), intent(in)  this,
type(marray_cellvector), intent(in)  curv,
type(marray_cellvector), intent(in)  v_curv,
type(marray_cellvector), intent(inout)  v_cart 
)

Convert curvilinear vector components to cartesian vector components.

ATTENTION: v_cart should actually be intent(out), but this breaks the pointer assignment to v_cartdata1d in the mesh array

Definition at line 573 of file geometry_base.f90.

◆ convert2curvilinear_coords()

pure subroutine geometry_base_mod::convert2curvilinear_coords ( class(geometry_base), intent(in)  this,
type(marray_cellvector), intent(in)  cart,
type(marray_cellvector), intent(inout)  curv 
)

Convert cartesian to curvilinear coordinates.

ATTENTION: curv should actually be intent(out), but this breaks the pointer assignment to curvdata1d in the mesh array

Definition at line 559 of file geometry_base.f90.

◆ convert2curvilinear_vectors()

pure subroutine geometry_base_mod::convert2curvilinear_vectors ( class(geometry_base), intent(in)  this,
type(marray_cellvector), intent(in)  curv,
type(marray_cellvector), intent(in)  v_cart,
type(marray_cellvector), intent(inout)  v_curv 
)

Convert cartesian vector components to curvilinear vector components.

Definition at line 586 of file geometry_base.f90.

◆ finalize_base()

subroutine geometry_base_mod::finalize_base ( class(geometry_base), intent(inout)  this)

Destructor of generic geometry module.

Definition at line 622 of file geometry_base.f90.

◆ getazimuthindex()

pure integer function geometry_base_mod::getazimuthindex ( class(geometry_base), intent(in)  this)

returns the coordinate index of the azimuthal angle

the default is 0, if there is no azimuthal angle, e.g. for cartesian coordinates

Definition at line 612 of file geometry_base.f90.

◆ getscale1()

pure real function geometry_base_mod::getscale1 ( class(geometry_base), intent(in)  this)
private

Definition at line 439 of file geometry_base.f90.

◆ getscale2()

pure real function geometry_base_mod::getscale2 ( class(geometry_base), intent(in)  this,
integer, intent(in)  i 
)
private

Definition at line 448 of file geometry_base.f90.

◆ initgeometry()

subroutine geometry_base_mod::initgeometry ( class(geometry_base), intent(inout)  this,
integer, intent(in)  gnum,
character(len=*), intent(in)  gname,
type(dict_typ), pointer  config 
)

Constructor of generic geometry module.

Definition at line 379 of file geometry_base.f90.

◆ positionvector_0()

pure subroutine geometry_base_mod::positionvector_0 ( class(geometry_base), intent(in)  this,
type(marray_cellvector), intent(in)  coords,
type(marray_cellvector), intent(inout)  posvec 
)

compute position vector components for all cell positions

Computes the curvilinear position vector components with respect to the given geometry. ATTENTION: posvec should actually be intent(out), but this breaks the pointer assignment to posvecdata1d in the mesh array

Definition at line 531 of file geometry_base.f90.

◆ radius_0()

pure subroutine geometry_base_mod::radius_0 ( class(geometry_base), intent(in)  this,
type(marray_cellvector), intent(in)  coords,
type(marray_cellscalar), intent(inout)  radius 
)

Compute radial distances to the origin.

Computes the radial distances to the origin for the given coordinates depending on the geometry. ATTENTION: radius should actually be intent(out), but this breaks the pointer assignment to radiusdata1d in the mesh array

Definition at line 515 of file geometry_base.f90.

◆ scalefactors_0()

pure subroutine geometry_base_mod::scalefactors_0 ( class(geometry_base), intent(in)  this,
type(marray_cellvector), intent(in)  coords,
type(marray_cellscalar), intent(inout)  hx,
type(marray_cellscalar), intent(inout)  hy,
type(marray_cellscalar), intent(inout)  hz 
)

Compute scale factors.

Computes the scale factors of the given geometry.

\[ h_x = \left|\frac{\partial \vec{r}}{\partial x}\right|,\quad h_y = \left|\frac{\partial \vec{r}}{\partial y}\right|,\quad h_z = \left|\frac{\partial \vec{r}}{\partial z}\right| \]

ATTENTION: hx,hy,hz should actually be intent(out), but this breaks the pointer assignments to hxdata1d,... in the mesh array

Definition at line 499 of file geometry_base.f90.

◆ setazimuthindex()

pure subroutine geometry_base_mod::setazimuthindex ( class(geometry_base), intent(inout)  this,
integer, intent(in)  idx 
)

sets the coordinate index of the azimuthal angle

the default is 0, if there is no azimuthal angle, e.g. for cartesian coordinates

Definition at line 600 of file geometry_base.f90.

◆ setscale1()

pure subroutine geometry_base_mod::setscale1 ( class(geometry_base), intent(inout)  this,
real, intent(in)  gp 
)
private

Definition at line 458 of file geometry_base.f90.

◆ setscale2()

pure subroutine geometry_base_mod::setscale2 ( class(geometry_base), intent(inout)  this,
real, intent(in)  gp,
real, intent(in)  gp2 
)
private

Definition at line 467 of file geometry_base.f90.

◆ setscale3()

pure subroutine geometry_base_mod::setscale3 ( class(geometry_base), intent(inout)  this,
real, intent(in)  gp,
real, intent(in)  gp2,
real, intent(in)  gp3 
)
private

Definition at line 477 of file geometry_base.f90.

Variable Documentation

◆ cartesian

integer, parameter, public geometry_base_mod::cartesian = 1

Definition at line 344 of file geometry_base.f90.

◆ cylindrical

integer, parameter, public geometry_base_mod::cylindrical = 30

Definition at line 354 of file geometry_base.f90.

◆ logcylindrical

integer, parameter, public geometry_base_mod::logcylindrical = 31

Definition at line 355 of file geometry_base.f90.

◆ logspherical

integer, parameter, public geometry_base_mod::logspherical = 41

Definition at line 359 of file geometry_base.f90.

◆ pi

real, parameter, public geometry_base_mod::pi = 3.1415926535897932384626433832795028842

Definition at line 43 of file geometry_base.f90.

◆ spherical

integer, parameter, public geometry_base_mod::spherical = 40

Definition at line 358 of file geometry_base.f90.