OCaml Design Frames/Elementary Function Prototype

From WikiOsp
Jump to: navigation, search

to OCaml Design Frames Index

Entity Name

  • Elementary Function Prototype

to be continued by ~~

Description

the Domain where Elementary Function Prototypes are defined

Purpose

Label type

  • it is a ...

Container type

  • to calculate its value, it needs ... to

Value type

  • its value is ...

Is a kind of

Notations

Linked Obsolete Documents

  {[          Characteristic           Composition                                           OCaml Label Type
   Pack    <-> c ( Center )            loop on all n of basisset of c                        Basisfunction_body_set_centered_c_indexed
   Cluster <-> n ( Shell Ordinal )     loop on all l of with l = 0,.., n-1 in basisset of c  Basisfunction_body_set_centered_l_indexed
   Bundle  <-> n,l ( Shell Name )      loop on all m : -l to +l                              basisfunction_body_set_centered_m_indexed
   Single  <-> l,m ( Quantum Numbers ) loop on all expanded_xfp of basisset of c,l,n         basisfunction_body_set_centered_full
   ]}
! Description : There are 3 different kind of hierarchically related Objects:
! Description :  
! Description : 1. Elementary Primitive Functions (EPF)
! Description :    such as pure gaussians, slaters, plane-waves
! Description :  
! Description : 2. Extended   Primitive Functions (XPF)
! Description :    they are extension of EPF by center and symmetry  
! Description :    for example an epf P gives 3 xpfs : PX, PY, PZ 
! Description :  
! Description : 3. Atomic Orbitals                (AO)
! Description :    These are (contracted) combinations of XPFs
! Description :  
! Description : To manipulate the relationship between these 3 kind of Objects
! Description : We attribute to each of them a name designed in such a way that
! Description : these relationship becomes evident. As shown below:
! Description :  
! Description : Elementary Primitive Functions (EPF)
! Description :    they describe the representation for an Element 
! Description :    not for an individual atom.
! Description :    Names are defined as follows: 
! Description :
! Description :       atomic symbol
! Description :             |                shell number
! Description :             |  symmetry (S,P,..) | contraction number in shell
! Description :             |         |          |   |
! Description :             |         |          |   |
! Description :             |         | r_power  |   |
! Description :             |         |  |       |   |
! Description :             v         v  v       v   v
! Description :  name      'Mn________D_Rn_______002_004'
! Description :             0000000001111111111222222222 
! Description :  position   1   6    01  4     012   6 8  
! Description :
! Description : Slaters functions (STOs) follow Slater's conventions:
! Description :   Sto_mu (r,theta,phi)[nl] = R_mu [nl-1] Y lm (theta,phi)
! Description :   R [nl] (r) = N[nl, zeta] r^(nl) Exp(-zeta r)
! Description :   N[nl, zeta] = Sqrt[(2nl)!] (2 zeta)^(nl + 1/2)
! Description :   where nl = n + l
! Description :   as described in  S. Huzinaga (1985) p 289  
! Description :   Basis sets for molecular calculations, North-Holland

! Revision: 13 Fev 2001: stemp, string => local
! Revision: 13 Sep 2001: Added r^n and Ylm for Slaters
! Revision: 30 Nov 2001: by F. Colonna Molpro things   

  implicit none

  character(len=length_epf_name), pointer :: epfs_name (:)!'                '
  character(len=length_epf_type), pointer :: epfs_type (:)!'       '! GTO, STO, PWO
  character(len=length_epf_elem), pointer :: epfs_element_name (:)  ! C, Hg, Ne, ..
  character(len=length_epf_symm), pointer :: epfs_symmetry (:) !'  '     ! S, P, D, F ..
  real(dp), pointer                       :: epfs_coefficient (:)
  real(dp), pointer                       :: epfs_exponent (:)

! r_power means r^(r_power) in calculations (NO MORE Slater's convention)
! thus for 1s STOs r_power = 0
  integer(i4b), pointer                   :: epfs_r_power  (:)
  integer(i4b), pointer                   :: epfs_contr_index (:)   ! contraction index
  integer(i4b), pointer                   :: epfs_shell_index  (:)  ! shell index
  
  integer(i4b), private :: epfs_nb 

  integer(i4b), private                   :: cur_epf  ! -1
  character(len=8), private               :: cur_type !'       '! GTO, STO, PWO
  character(len=max_string_len_file_name) :: cur_file !'              '

  character(len=1), private,parameter, dimension(3):: l_XYZ = (/'X','Y','Z'/)

! List of element names in epfs basis file
  character(len=max_string_len), private  :: elements_in_basis 

  contains

Examples

Cc_pvtz for F (Fluorine)

F     0 
S     5     1.00 
         20450.4890000              0.51103495E-03   
          3066.9547000              0.39518820E-02   
           697.9100300              0.20334553E-01   
           197.2702000              0.79876480E-01   
            63.7283430              0.23775601       
S     1     1.00 
            22.3218090              1.0000000        
S     1     1.00 
             8.1557609              1.0000000        
S     1     1.00 
             2.2114295              1.0000000        
S     1     1.00 
             0.89038567             1.0000000        
S     1     1.00 
             0.30696604             1.0000000        
P     4     1.00 
            80.2180200              0.63744464E-02   
            18.5872810              0.44360191E-01   
             5.6844581              0.16880038       
             1.9512781              0.36162979       
P     1     1.00 
             0.67024114             1.0000000        
P     1     1.00 
             0.21682252             1.0000000        

Comments

?

PNG Diagrams

UML diagram

Bibliography

Properties

  • they are not calculable, only information.

Related Entities

Functionnalities

Qualities

Critics

Example

Tests

in local unitary_tests/

Links

Frames files

First Version

  • by ~~~~

OCaml Version


created by {{subst:NODP}}


Editing Category:Frames