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)
 
subroutine curv_gygi_to_cartesian_relaxed (this, chi, xx, conv)
 Retry the root search with a reduced A, then increase A back. Kept out of curv_gygi_to_cartesian, as ifx initializes a static descriptor for the relaxed copy in the prologue, which is a data race in OpenMP regions. More...
 
pure real(real64) function, dimension(1:this%dim) curv_gygi_from_cartesian (this, xx)
 
subroutine curv_gygi_write_info (this, iunit, namespace)
 
real(real64) function curv_gygi_surface_element (this, idir)
 
real(real64) function, dimension(1:this%dim, 1:this%dim) curv_gygi_jacobian (this, chi)
 
real(real64) function, dimension(1:this%dim, 1:this%dim) curv_gygi_jacobian_inverse (this, chi)
 
real(real64) function, dimension(1:this%dim, 1:this%dim) curv_gygi_jacobian_inverse_cartesian (this, xx)
 
pure subroutine, public curv_gygi_hessian (this, xx, hessian, natoms)
 
real(real64) function, dimension(1:this%dim) curv_gygi_trace_hessian (this, chi)
 
subroutine getf (y, f, jf)
 

Variables

class(curv_gygi_t), pointer gygi_p
 
type(curv_gygi_t), allocatable, target gygi_relaxed
 
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 178 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 252 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 274 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 285 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 303 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 327 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 354 of file curv_gygi.F90.

◆ curv_gygi_to_cartesian_relaxed()

subroutine curv_gygi_oct_m::curv_gygi_to_cartesian_relaxed ( class(curv_gygi_t), intent(in)  this,
real(real64), dimension(:), intent(in)  chi,
real(real64), dimension(:), intent(inout)  xx,
logical, intent(out)  conv 
)
private

Retry the root search with a reduced A, then increase A back. Kept out of curv_gygi_to_cartesian, as ifx initializes a static descriptor for the relaxed copy in the prologue, which is a data race in OpenMP regions.

Definition at line 389 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 426 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 448 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 468 of file curv_gygi.F90.

◆ curv_gygi_jacobian()

real(real64) function, dimension(1:this%dim, 1:this%dim) curv_gygi_oct_m::curv_gygi_jacobian ( class(curv_gygi_t), intent(in)  this,
real(real64), dimension(:), intent(in)  chi 
)
private

Definition at line 479 of file curv_gygi.F90.

◆ curv_gygi_jacobian_inverse()

real(real64) function, dimension(1:this%dim, 1:this%dim) curv_gygi_oct_m::curv_gygi_jacobian_inverse ( class(curv_gygi_t), intent(in)  this,
real(real64), dimension(:), intent(in)  chi 
)
private

Definition at line 489 of file curv_gygi.F90.

◆ curv_gygi_jacobian_inverse_cartesian()

real(real64) function, dimension(1:this%dim, 1:this%dim) curv_gygi_oct_m::curv_gygi_jacobian_inverse_cartesian ( class(curv_gygi_t), intent(in)  this,
real(real64), dimension(:), intent(in)  xx 
)
private

Definition at line 504 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), contiguous  xx,
real(real64), dimension(:, :, :), intent(out), contiguous  hessian,
integer, intent(in), optional  natoms 
)
Parameters
[in]xxx(dim)
[out]hessianhessian(dim,dim,dim)

Definition at line 535 of file curv_gygi.F90.

◆ curv_gygi_trace_hessian()

real(real64) function, dimension(1:this%dim) curv_gygi_oct_m::curv_gygi_trace_hessian ( class(curv_gygi_t), intent(in)  this,
real(real64), dimension(:), intent(in)  chi 
)
private

Definition at line 579 of file curv_gygi.F90.

◆ getf()

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 613 of file curv_gygi.F90.

Variable Documentation

◆ gygi_p

class(curv_gygi_t), pointer curv_gygi_oct_m::gygi_p
private

Definition at line 170 of file curv_gygi.F90.

◆ gygi_relaxed

type(curv_gygi_t), allocatable, target curv_gygi_oct_m::gygi_relaxed
private

Definition at line 171 of file curv_gygi.F90.

◆ chi_p

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

Definition at line 172 of file curv_gygi.F90.