public subroutine torsion_angle_jacobian(ca, cb, cc, cd, thet, J_a, J_b, J_c, J_d)
Uses
proc~~torsion_angle_jacobian~~UsesGraph
proc~torsion_angle_jacobian
torsion_angle_jacobian
module~mod_constants
mod_constants
proc~torsion_angle_jacobian->module~mod_constants
module~mod_utils
mod_utils
proc~torsion_angle_jacobian->module~mod_utils
iso_c_binding
iso_c_binding
module~mod_constants->iso_c_binding
module~mod_utils->module~mod_constants
module~mod_memory
mod_memory
module~mod_utils->module~mod_memory
module~mod_memory->module~mod_constants
module~mod_memory->iso_c_binding
module~mod_io
mod_io
module~mod_memory->module~mod_io
module~mod_io->module~mod_constants
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Computes the Jacobian matrix for torsion angle defined by points
, , and (connected in
this order). The angle is defined as follow:
[ \vec{U} = (\vec{B} - \vec{C}) \times (\vec{D} - \vec{C}) \ !! \vec{T} = (\vec{B} - \vec{A}) \times (\vec{B} - \vec{C}) \ !! cos(\theta) = \vec{U} \cdot \vec{T}
]
Applying the chain rule:
[J_a = \frac{\partial \theta}{\partial \vec{A}}
= -\frac{1}{\sqrt{1-\theta^2}}
\frac{\partial cos(\theta)}{\partial \vec{A}}
= -\frac{1}{\sqrt{1-\theta^2}}
\frac{\partial \vec{U} \cdot \vec{T}}{\partial \vec{A}} \ !! = -\frac{1}{\sqrt{1-\theta^2}}
\frac{\partial (\vec{B} - \vec{A})}{\partial \vec{A}} \times
\frac{\partial \vec{T}}{\partial (\vec{B} - \vec{A})} \times
\frac{\partial \hat{T}}{\partial \vec{T}} \times \vec{U} \ !! = -\frac{1}{\sqrt{1-\theta^2}}
(- \mathbb{I}_3) \times
skw(B-C) \times
\frac{\partial \hat{T}}{\partial \vec{T}} \times \vec{U}
]
Arguments
Type
Intent Optional Attributes
Name
real(kind=rp),
intent(inout),
dimension(3)
::
ca
Coordinates of the atoms defining the angle
real(kind=rp),
intent(inout),
dimension(3)
::
cb
Coordinates of the atoms defining the angle
real(kind=rp),
intent(inout),
dimension(3)
::
cc
Coordinates of the atoms defining the angle
real(kind=rp),
intent(inout),
dimension(3)
::
cd
Coordinates of the atoms defining the angle
real(kind=rp),
intent(out)
::
thet
The torsion angle
real(kind=rp),
intent(out),
dimension(3)
::
J_a
The Jacobian components on atoms a, b and c and d respectively
real(kind=rp),
intent(out),
dimension(3)
::
J_b
The Jacobian components on atoms a, b and c and d respectively
real(kind=rp),
intent(out),
dimension(3)
::
J_c
The Jacobian components on atoms a, b and c and d respectively
real(kind=rp),
intent(out),
dimension(3)
::
J_d
The Jacobian components on atoms a, b and c and d respectively
Calls
proc~~torsion_angle_jacobian~~CallsGraph
proc~torsion_angle_jacobian
torsion_angle_jacobian
proc~cross_product
cross_product
proc~torsion_angle_jacobian->proc~cross_product
proc~versor_der
versor_der
proc~torsion_angle_jacobian->proc~versor_der
proc~vec_skw
vec_skw
proc~torsion_angle_jacobian->proc~vec_skw
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Unknown Procedure Type
Unknown Procedure Type
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Called by
proc~~torsion_angle_jacobian~~CalledByGraph
proc~torsion_angle_jacobian
torsion_angle_jacobian
proc~torsion_geomgrad
torsion_geomgrad
proc~torsion_geomgrad->proc~torsion_angle_jacobian
proc~angtor_geomgrad
angtor_geomgrad
proc~angtor_geomgrad->proc~torsion_angle_jacobian
proc~strtor_geomgrad
strtor_geomgrad
proc~strtor_geomgrad->proc~torsion_angle_jacobian
proc~tortor_geomgrad
tortor_geomgrad
proc~tortor_geomgrad->proc~torsion_angle_jacobian
proc~imptorsion_geomgrad
imptorsion_geomgrad
proc~imptorsion_geomgrad->proc~torsion_angle_jacobian
proc~link_atom_torsion_geomgrad
link_atom_torsion_geomgrad
proc~link_atom_torsion_geomgrad->proc~torsion_geomgrad
proc~ommp_torsion_geomgrad
ommp_torsion_geomgrad
proc~ommp_torsion_geomgrad->proc~torsion_geomgrad
proc~ommp_torsion_geomgrad->proc~link_atom_torsion_geomgrad
proc~ommp_full_bnd_geomgrad
ommp_full_bnd_geomgrad
proc~ommp_full_bnd_geomgrad->proc~torsion_geomgrad
proc~ommp_full_bnd_geomgrad->proc~angtor_geomgrad
proc~ommp_full_bnd_geomgrad->proc~strtor_geomgrad
proc~ommp_full_bnd_geomgrad->proc~tortor_geomgrad
proc~ommp_full_bnd_geomgrad->proc~imptorsion_geomgrad
proc~ommp_full_bnd_geomgrad->proc~link_atom_torsion_geomgrad
proc~ommp_angtor_geomgrad
ommp_angtor_geomgrad
proc~ommp_angtor_geomgrad->proc~angtor_geomgrad
proc~ommp_strtor_geomgrad
ommp_strtor_geomgrad
proc~ommp_strtor_geomgrad->proc~strtor_geomgrad
proc~ommp_tortor_geomgrad
ommp_tortor_geomgrad
proc~ommp_tortor_geomgrad->proc~tortor_geomgrad
proc~ommp_imptorsion_geomgrad
ommp_imptorsion_geomgrad
proc~ommp_imptorsion_geomgrad->proc~imptorsion_geomgrad
proc~qm_helper_link_atom_geomgrad
qm_helper_link_atom_geomgrad
proc~qm_helper_link_atom_geomgrad->proc~link_atom_torsion_geomgrad
proc~c_ommp_angtor_geomgrad
C_ommp_angtor_geomgrad
proc~c_ommp_angtor_geomgrad->proc~ommp_angtor_geomgrad
proc~c_ommp_full_bnd_geomgrad
C_ommp_full_bnd_geomgrad
proc~c_ommp_full_bnd_geomgrad->proc~ommp_full_bnd_geomgrad
proc~c_ommp_torsion_geomgrad
C_ommp_torsion_geomgrad
proc~c_ommp_torsion_geomgrad->proc~ommp_torsion_geomgrad
proc~ommp_full_geomgrad
ommp_full_geomgrad
proc~ommp_full_geomgrad->proc~ommp_full_bnd_geomgrad
proc~c_ommp_strtor_geomgrad
C_ommp_strtor_geomgrad
proc~c_ommp_strtor_geomgrad->proc~ommp_strtor_geomgrad
proc~c_ommp_tortor_geomgrad
C_ommp_tortor_geomgrad
proc~c_ommp_tortor_geomgrad->proc~ommp_tortor_geomgrad
proc~c_ommp_imptorsion_geomgrad
C_ommp_imptorsion_geomgrad
proc~c_ommp_imptorsion_geomgrad->proc~ommp_imptorsion_geomgrad
proc~ommp_qm_helper_link_atom_geomgrad
ommp_qm_helper_link_atom_geomgrad
proc~ommp_qm_helper_link_atom_geomgrad->proc~qm_helper_link_atom_geomgrad
proc~c_ommp_full_geomgrad
C_ommp_full_geomgrad
proc~c_ommp_full_geomgrad->proc~ommp_full_geomgrad
proc~c_ommp_qm_helper_link_atom_geomgrad
C_ommp_qm_helper_link_atom_geomgrad
proc~c_ommp_qm_helper_link_atom_geomgrad->proc~ommp_qm_helper_link_atom_geomgrad
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Unknown Procedure Type
Unknown Procedure Type
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.