public pure subroutine inplane_angle_jacobian(ca, cb, cc, cx, thet, J_a, J_b, J_c, J_x)
Uses
proc~~inplane_angle_jacobian~~UsesGraph
proc~inplane_angle_jacobian
inplane_angle_jacobian
module~mod_utils
mod_utils
proc~inplane_angle_jacobian->module~mod_utils
module~mod_constants
mod_constants
module~mod_utils->module~mod_constants
module~mod_memory
mod_memory
module~mod_utils->module~mod_memory
iso_c_binding
iso_c_binding
module~mod_constants->iso_c_binding
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 the inplane angle definition.
It computes the Jacobian for the normal angle using the projected
point (R) as central point. Then projects
onto A, B, C, and X
(auxiliary point). The projection is done computing the 3x3 matrices
of partial derivative of wrt any actual point and using
them to project .
[\frac{\partial \vec{R}}{\partial \vec{A}} =
\begin{bmatrix}
\frac{\partial \vec{R}_x}{\partial \vec{A}_x} &
\frac{\partial \vec{R}_y}{\partial \vec{A}_x} &
\frac{\partial \vec{R}_z}{\partial \vec{A}_x} \ !! \frac{\partial \vec{R}_x}{\partial \vec{A}_y} &
\frac {\partial \vec {R }_y }{\partial \vec {A }_y } &
\frac {\partial \vec {R }_z }{\partial \vec {A }_y } \ !! \frac {\partial \vec {R }_x }{\partial \vec {A }_z } &
\frac {\partial \vec {R }_y }{\partial \vec {A }_z } &
\frac {\partial \vec {R }_z }{\partial \vec {A }_z } \ !! \end {bmatrix } \]
Those matrices are computed using the chain rule.
Exemple:
Arguments
Type
Intent Optional Attributes
Name
real(kind=rp),
intent(in),
dimension(3)
::
ca
Coordinates of the atoms defining the angle
real(kind=rp),
intent(in),
dimension(3)
::
cb
Coordinates of the atoms defining the angle
real(kind=rp),
intent(in),
dimension(3)
::
cc
Coordinates of the atoms defining the angle
real(kind=rp),
intent(in),
dimension(3)
::
cx
Coordinates of the atoms defining the angle
real(kind=rp),
intent(out)
::
thet
The angle (in rad) defined by ca-cb-cc
real(kind=rp),
intent(out),
dimension(3)
::
J_a
The Jacobian components on atoms a, b and c respectively
real(kind=rp),
intent(out),
dimension(3)
::
J_b
The Jacobian components on atoms a, b and c respectively
real(kind=rp),
intent(out),
dimension(3)
::
J_c
The Jacobian components on atoms a, b and c respectively
real(kind=rp),
intent(out),
dimension(3)
::
J_x
The Jacobian components on atoms a, b and c respectively
Calls
proc~~inplane_angle_jacobian~~CallsGraph
proc~inplane_angle_jacobian
inplane_angle_jacobian
proc~cross_product
cross_product
proc~inplane_angle_jacobian->proc~cross_product
proc~versor_der
versor_der
proc~inplane_angle_jacobian->proc~versor_der
proc~simple_angle_jacobian
simple_angle_jacobian
proc~inplane_angle_jacobian->proc~simple_angle_jacobian
proc~vec_skw
vec_skw
proc~inplane_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~~inplane_angle_jacobian~~CalledByGraph
proc~inplane_angle_jacobian
inplane_angle_jacobian
proc~angle_geomgrad
angle_geomgrad
proc~angle_geomgrad->proc~inplane_angle_jacobian
proc~link_atom_angle_geomgrad
link_atom_angle_geomgrad
proc~link_atom_angle_geomgrad->proc~angle_geomgrad
proc~ommp_angle_geomgrad
ommp_angle_geomgrad
proc~ommp_angle_geomgrad->proc~angle_geomgrad
proc~ommp_angle_geomgrad->proc~link_atom_angle_geomgrad
proc~ommp_full_bnd_geomgrad
ommp_full_bnd_geomgrad
proc~ommp_full_bnd_geomgrad->proc~angle_geomgrad
proc~ommp_full_bnd_geomgrad->proc~link_atom_angle_geomgrad
proc~qm_helper_link_atom_geomgrad
qm_helper_link_atom_geomgrad
proc~qm_helper_link_atom_geomgrad->proc~link_atom_angle_geomgrad
proc~c_ommp_angle_geomgrad
C_ommp_angle_geomgrad
proc~c_ommp_angle_geomgrad->proc~ommp_angle_geomgrad
proc~c_ommp_full_bnd_geomgrad
C_ommp_full_bnd_geomgrad
proc~c_ommp_full_bnd_geomgrad->proc~ommp_full_bnd_geomgrad
proc~ommp_full_geomgrad
ommp_full_geomgrad
proc~ommp_full_geomgrad->proc~ommp_full_bnd_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~ommptest_totalqmmm_geomgrad
ommptest_totalqmmm_geomgrad
proc~ommptest_totalqmmm_geomgrad->proc~ommp_full_geomgrad
proc~ommptest_totalqmmm_geomgrad->proc~ommp_qm_helper_link_atom_geomgrad
proc~ommptest_fakeqm_internal_geomgrad
ommptest_fakeqm_internal_geomgrad
proc~ommptest_fakeqm_internal_geomgrad->proc~ommp_full_geomgrad
proc~c_ommp_full_geomgrad
C_ommp_full_geomgrad
proc~c_ommp_full_geomgrad->proc~ommp_full_geomgrad
proc~ommptest_fakeqm_linkatom_geomgrad
ommptest_fakeqm_linkatom_geomgrad
proc~ommptest_fakeqm_linkatom_geomgrad->proc~ommp_full_geomgrad
proc~ommptest_fakeqm_linkatom_geomgrad->proc~ommp_qm_helper_link_atom_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.