Octopus
curv_modine_oct_m Module Reference

This module implements the curvilinear coordinates given in N. A. Modine, G. Zumbach, and E. Kaxiras, Phys. Rev. B 55, 10289-10301 (1997) More...

Detailed Description

This module implements the curvilinear coordinates given in N. A. Modine, G. Zumbach, and E. Kaxiras, Phys. Rev. B 55, 10289-10301 (1997)

The local refinement was changed for a simple exponential. I believe that the recipe given by the authors is too complicated for me to sort out.

Data Types

interface  curv_modine_t
 

Functions/Subroutines

class(curv_modine_t) function, pointer curv_modine_constructor (namespace, dim, npos, pos, lsize, spacing)
 
subroutine, public curv_modine_copy (this_out, this_in)
 
subroutine curv_modine_finalize (this)
 
real(real64) function, dimension(1:this%dim) curv_modine_to_cartesian (this, chi)
 
real(real64) function, dimension(1:this%dim) curv_modine_from_cartesian (this, xx)
 
real(real64) function curv_modine_det_jac (this, xx, chi)
 
subroutine curv_modine_write_info (this, iunit, namespace)
 
real(real64) function curv_modine_surface_element (this, idir)
 
pure subroutine curv_modine_chi2chi2 (this, chi_, chi2, Jac)
 
pure subroutine curv_modine_jacobian_inv (this, chi, xx, Jac)
 
pure subroutine getf (yy, ff, jf)
 
subroutine getf2 (csi, ff, jf)
 

Variables

class(curv_modine_t), pointer modine_p
 
real(real64), dimension(:), allocatable x_p
 

Function/Subroutine Documentation

◆ curv_modine_constructor()

class(curv_modine_t) function, pointer curv_modine_oct_m::curv_modine_constructor ( type(namespace_t), intent(in)  namespace,
integer, intent(in)  dim,
integer, intent(in)  npos,
real(real64), dimension(1:dim,1:npos), intent(in)  pos,
real(real64), dimension(1:dim), intent(in)  lsize,
real(real64), dimension(1:dim), intent(in)  spacing 
)
private

Definition at line 176 of file curv_modine.F90.

◆ curv_modine_copy()

subroutine, public curv_modine_oct_m::curv_modine_copy ( type(curv_modine_t), intent(inout)  this_out,
type(curv_modine_t), intent(in)  this_in 
)

Definition at line 343 of file curv_modine.F90.

◆ curv_modine_finalize()

subroutine curv_modine_oct_m::curv_modine_finalize ( type(curv_modine_t), intent(inout)  this)
private

Definition at line 364 of file curv_modine.F90.

◆ curv_modine_to_cartesian()

real(real64) function, dimension(1:this%dim) curv_modine_oct_m::curv_modine_to_cartesian ( class(curv_modine_t), intent(in), target  this,
real(real64), dimension(:), intent(in)  chi 
)
private

Definition at line 379 of file curv_modine.F90.

◆ curv_modine_from_cartesian()

real(real64) function, dimension(1:this%dim) curv_modine_oct_m::curv_modine_from_cartesian ( class(curv_modine_t), intent(in), target  this,
real(real64), dimension(:), intent(in)  xx 
)
private

Definition at line 402 of file curv_modine.F90.

◆ curv_modine_det_jac()

real(real64) function curv_modine_oct_m::curv_modine_det_jac ( class(curv_modine_t), intent(in)  this,
real(real64), dimension(:), intent(in)  xx,
real(real64), dimension(:), intent(in)  chi 
)
private

Definition at line 430 of file curv_modine.F90.

◆ curv_modine_write_info()

subroutine curv_modine_oct_m::curv_modine_write_info ( class(curv_modine_t), intent(in)  this,
integer, intent(in), optional  iunit,
type(namespace_t), intent(in), optional  namespace 
)
private

Definition at line 445 of file curv_modine.F90.

◆ curv_modine_surface_element()

real(real64) function curv_modine_oct_m::curv_modine_surface_element ( class(curv_modine_t), intent(in)  this,
integer, intent(in)  idir 
)
private

Definition at line 459 of file curv_modine.F90.

◆ curv_modine_chi2chi2()

pure subroutine curv_modine_oct_m::curv_modine_chi2chi2 ( class(curv_modine_t), intent(in)  this,
real(real64), dimension(:), intent(in)  chi_,
real(real64), dimension(:), intent(out)  chi2,
real(real64), dimension(:), intent(out), optional  Jac 
)
private
Parameters
[out]jacthe Jacobian of this transformation is diagonal

Definition at line 470 of file curv_modine.F90.

◆ curv_modine_jacobian_inv()

pure subroutine curv_modine_oct_m::curv_modine_jacobian_inv ( type(curv_modine_t), intent(in)  this,
real(real64), dimension(:), intent(in)  chi,
real(real64), dimension(:), intent(out)  xx,
real(real64), dimension(:, :), intent(out)  Jac 
)
private
Parameters
[out]jacthe Jacobian

Definition at line 511 of file curv_modine.F90.

◆ getf()

pure subroutine curv_modine_oct_m::getf ( real(real64), dimension(:), intent(in)  yy,
real(real64), dimension(:), intent(out)  ff,
real(real64), dimension(:, :), intent(out)  jf 
)
private

Definition at line 554 of file curv_modine.F90.

◆ getf2()

subroutine curv_modine_oct_m::getf2 ( real(real64), dimension(:), intent(in)  csi,
real(real64), dimension(:), intent(out)  ff,
real(real64), dimension(:, :), intent(out)  jf 
)
private

Definition at line 566 of file curv_modine.F90.

Variable Documentation

◆ modine_p

class(curv_modine_t), pointer curv_modine_oct_m::modine_p
private

Definition at line 170 of file curv_modine.F90.

◆ x_p

real(real64), dimension(:), allocatable curv_modine_oct_m::x_p
private

Definition at line 171 of file curv_modine.F90.