Octopus
curv_gygi_oct_m Module Reference

This module implements the curvilinear coordinates given in F. Gygi and G. Galli, PRB 52 R2229 (1996). More...

Detailed Description

This module implements the curvilinear coordinates given in F. Gygi and G. Galli, PRB 52 R2229 (1996).

Data Types

interface  curv_gygi_t
 

Functions/Subroutines

class(curv_gygi_t) function, pointer curv_gygi_constructor (namespace, dim, npos, pos)
 
subroutine, public curv_gygi_copy (this_out, this_in)
 
subroutine curv_gygi_finalize (this)
 
real(real64) pure function gygi_f (this, r)
 
real(real64) pure function gygi_dfdr_over_r (this, r)
 
real(real64) pure function gygi_d2fdr2_combination (this, r)
 
real(real64) function, dimension(1:this%dim) curv_gygi_to_cartesian (this, chi)
 
pure real(real64) function, dimension(1:this%dim) curv_gygi_from_cartesian (this, xx)
 
real(real64) function curv_gygi_det_jac (this, xx, chi)
 
subroutine curv_gygi_write_info (this, iunit, namespace)
 
real(real64) function curv_gygi_surface_element (this, idir)
 
pure subroutine, public curv_gygi_jacobian (this, xx, chi, jac, natoms)
 
pure subroutine, public curv_gygi_hessian (this, xx, hessian, natoms)
 
pure subroutine, public curv_gygi_hessian_trace (this, xx, hessian_trace, natoms)
 
pure subroutine getf (y, f, jf)
 
pure subroutine dcurv_gygi_vector_from_cartesian (this, xx, vv, src)
 
pure subroutine dcurv_gygi_covector_to_cartesian (this, xx, cv, src)
 
pure subroutine zcurv_gygi_vector_from_cartesian (this, xx, vv, src)
 
pure subroutine zcurv_gygi_covector_to_cartesian (this, xx, cv, src)
 

Variables

class(curv_gygi_t), pointer gygi_p
 
integer i_p
 
real(real64), dimension(:), allocatable chi_p
 

Function/Subroutine Documentation

◆ curv_gygi_constructor()

class(curv_gygi_t) function, pointer curv_gygi_oct_m::curv_gygi_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 
)
private

Definition at line 175 of file curv_gygi.F90.

◆ curv_gygi_copy()

subroutine, public curv_gygi_oct_m::curv_gygi_copy ( type(curv_gygi_t), intent(inout)  this_out,
type(curv_gygi_t), intent(in)  this_in 
)

Definition at line 244 of file curv_gygi.F90.

◆ curv_gygi_finalize()

subroutine curv_gygi_oct_m::curv_gygi_finalize ( type(curv_gygi_t), intent(inout)  this)
private

Definition at line 260 of file curv_gygi.F90.

◆ gygi_f()

real(real64) pure function curv_gygi_oct_m::gygi_f ( class(curv_gygi_t), intent(in)  this,
real(real64), intent(in)  r 
)
private

Definition at line 271 of file curv_gygi.F90.

◆ gygi_dfdr_over_r()

real(real64) pure function curv_gygi_oct_m::gygi_dfdr_over_r ( class(curv_gygi_t), intent(in)  this,
real(real64), intent(in)  r 
)
private

Definition at line 287 of file curv_gygi.F90.

◆ gygi_d2fdr2_combination()

real(real64) pure function curv_gygi_oct_m::gygi_d2fdr2_combination ( class(curv_gygi_t), intent(in)  this,
real(real64), intent(in)  r 
)
private

Definition at line 309 of file curv_gygi.F90.

◆ curv_gygi_to_cartesian()

real(real64) function, dimension(1:this%dim) curv_gygi_oct_m::curv_gygi_to_cartesian ( class(curv_gygi_t), intent(in), target  this,
real(real64), dimension(:), intent(in)  chi 
)
private
Parameters
[in]chichi(dim)

Definition at line 335 of file curv_gygi.F90.

◆ curv_gygi_from_cartesian()

pure real(real64) function, dimension(1:this%dim) curv_gygi_oct_m::curv_gygi_from_cartesian ( class(curv_gygi_t), intent(in), target  this,
real(real64), dimension(:), intent(in)  xx 
)
private
Parameters
[in]xxxx(dim)

Definition at line 375 of file curv_gygi.F90.

◆ curv_gygi_det_jac()

real(real64) function curv_gygi_oct_m::curv_gygi_det_jac ( class(curv_gygi_t), intent(in)  this,
real(real64), dimension(:), intent(in)  xx,
real(real64), dimension(:), intent(in)  chi 
)
private
Parameters
[in]xxxx(dim)
[in]chichi(dim)

Definition at line 397 of file curv_gygi.F90.

◆ curv_gygi_write_info()

subroutine curv_gygi_oct_m::curv_gygi_write_info ( class(curv_gygi_t), intent(in)  this,
integer, intent(in), optional  iunit,
type(namespace_t), intent(in), optional  namespace 
)
private

Definition at line 413 of file curv_gygi.F90.

◆ curv_gygi_surface_element()

real(real64) function curv_gygi_oct_m::curv_gygi_surface_element ( class(curv_gygi_t), intent(in)  this,
integer, intent(in)  idir 
)
private

Definition at line 433 of file curv_gygi.F90.

◆ curv_gygi_jacobian()

pure subroutine, public curv_gygi_oct_m::curv_gygi_jacobian ( class(curv_gygi_t), intent(in)  this,
real(real64), dimension(:), intent(in)  xx,
real(real64), dimension(:), intent(out)  chi,
real(real64), dimension(:, :), intent(out)  jac,
integer, intent(in), optional  natoms 
)
Parameters
[in]xxx(dim)
[out]chichi(dim)
[out]jacjac(dim,dim), the Jacobian

Definition at line 444 of file curv_gygi.F90.

◆ curv_gygi_hessian()

pure subroutine, public curv_gygi_oct_m::curv_gygi_hessian ( class(curv_gygi_t), intent(in)  this,
real(real64), dimension(:), intent(in)  xx,
real(real64), dimension(:, :, :), intent(out)  hessian,
integer, intent(in), optional  natoms 
)
Parameters
[in]xxx(dim)
[out]hessianhessian(dim,dim,dim)

Definition at line 482 of file curv_gygi.F90.

◆ curv_gygi_hessian_trace()

pure subroutine, public curv_gygi_oct_m::curv_gygi_hessian_trace ( class(curv_gygi_t), intent(in)  this,
real(real64), dimension(:), intent(in)  xx,
real(real64), dimension(:), intent(out)  hessian_trace,
integer, intent(in), optional  natoms 
)
Parameters
[in]xxx(dim)
[out]hessian_tracehessian_trace(dim)

Definition at line 526 of file curv_gygi.F90.

◆ getf()

pure subroutine curv_gygi_oct_m::getf ( real(real64), dimension(:), intent(in)  y,
real(real64), dimension(:), intent(out)  f,
real(real64), dimension(:, :), intent(out)  jf 
)
private

Definition at line 563 of file curv_gygi.F90.

◆ dcurv_gygi_vector_from_cartesian()

pure subroutine curv_gygi_oct_m::dcurv_gygi_vector_from_cartesian ( class(curv_gygi_t), intent(in)  this,
real(real64), dimension(:), intent(in)  xx,
real(real64), dimension(:), intent(inout)  vv,
real(real64), dimension(:), intent(in), optional  src 
)
private

Definition at line 642 of file curv_gygi.F90.

◆ dcurv_gygi_covector_to_cartesian()

pure subroutine curv_gygi_oct_m::dcurv_gygi_covector_to_cartesian ( class(curv_gygi_t), intent(in)  this,
real(real64), dimension(:), intent(in)  xx,
real(real64), dimension(:), intent(inout)  cv,
real(real64), dimension(:), intent(in), optional  src 
)
private

Definition at line 664 of file curv_gygi.F90.

◆ zcurv_gygi_vector_from_cartesian()

pure subroutine curv_gygi_oct_m::zcurv_gygi_vector_from_cartesian ( class(curv_gygi_t), intent(in)  this,
real(real64), dimension(:), intent(in)  xx,
complex(real64), dimension(:), intent(inout)  vv,
complex(real64), dimension(:), intent(in), optional  src 
)
private

Definition at line 754 of file curv_gygi.F90.

◆ zcurv_gygi_covector_to_cartesian()

pure subroutine curv_gygi_oct_m::zcurv_gygi_covector_to_cartesian ( class(curv_gygi_t), intent(in)  this,
real(real64), dimension(:), intent(in)  xx,
complex(real64), dimension(:), intent(inout)  cv,
complex(real64), dimension(:), intent(in), optional  src 
)
private

Definition at line 776 of file curv_gygi.F90.

Variable Documentation

◆ gygi_p

class(curv_gygi_t), pointer curv_gygi_oct_m::gygi_p
private

Definition at line 168 of file curv_gygi.F90.

◆ i_p

integer curv_gygi_oct_m::i_p
private

Definition at line 169 of file curv_gygi.F90.

◆ chi_p

real(real64), dimension(:), allocatable curv_gygi_oct_m::chi_p
private

Definition at line 170 of file curv_gygi.F90.