From 33be2d3d97c5ba9f006f6e92f2c06e5cc3978b4b Mon Sep 17 00:00:00 2001 From: Mark Dewing Date: Wed, 13 Sep 2023 13:36:31 -0500 Subject: [PATCH 1/4] Add oribital rotation documentation --- docs/intro_wavefunction.rst | 56 +++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/docs/intro_wavefunction.rst b/docs/intro_wavefunction.rst index 7ec203c2d7..2c7713ea37 100644 --- a/docs/intro_wavefunction.rst +++ b/docs/intro_wavefunction.rst @@ -912,6 +912,62 @@ the associated CSF, and the excitation degree relative to the first determinant. scf 2022200000000000000000000000000000000000000000000000000000 excitation degree 2 +.. _orbitalrotation: + +Orbital Rotation +---------------- +Orbital rotation mixes orbitals between those occupied by electrons and those unoccupied by electrons. +Because it changes the orbitals, orbital rotation can change the nodal structure and improve the fixed-node DMC energy. + +Combining orbitals is complicated by the need to maintain the normalization of the +orbitals. +A rotation matrix will preserve the normalization of the vectors in linear combinations. +However the entries in a rotation matrix are not independent. +A rotation matrix can be expressed as the matrix exponential of a skew-symmetric matrix. +The entries in that skew-symmetric matrix are independent and can form an independent set of optimizable parameters. + +Optimizable orbitals are given in the input file by enclosing an SPO +in an `rotated_sposet` element. The `determinant` element `id` attribute should reference the name of the rotated sposet. + +The `rotated_sposet` element requires use of the updated `sposet_collection` style. + +``rotated_sposet`` element: + +.. _Table_rotated_sposet: +.. table:: + + +-----------------+-----------------------+ + | Parent elements | ``sposet_collection`` | + +-----------------+-----------------------+ + | Child elements | ``sposet`` | + +-----------------+-----------------------+ + +Attribute: + ++-----------------+----------+----------+---------+-------------------------+ +| Name | Datatype | Values | Default | Description | ++=================+==========+==========+=========+=========================+ +| ``name`` | Text | | | Name of rotated SPOSet | ++-----------------+----------+----------+---------+-------------------------+ + +.. code-block:: + :caption: Orbital Rotation XML element. + :name: Listing 1 + + + + + ... + + + + + + + + + + .. _backflow: Backflow Wavefunctions From 30f8cc28022d506d64491570d972d0553ccbc10e Mon Sep 17 00:00:00 2001 From: Mark Dewing Date: Wed, 13 Sep 2023 15:37:34 -0500 Subject: [PATCH 2/4] Fix attribute on rotated_sposet --- docs/intro_wavefunction.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/intro_wavefunction.rst b/docs/intro_wavefunction.rst index 2c7713ea37..9fe7fee666 100644 --- a/docs/intro_wavefunction.rst +++ b/docs/intro_wavefunction.rst @@ -955,7 +955,7 @@ Attribute: :name: Listing 1 - + ... From 5554e51283bc64ea457004c078a2b1038a3ddadf Mon Sep 17 00:00:00 2001 From: Mark Dewing Date: Wed, 13 Sep 2023 16:36:29 -0500 Subject: [PATCH 3/4] Document opt_vars element As an optional child for rotated_sposet --- docs/intro_wavefunction.rst | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/docs/intro_wavefunction.rst b/docs/intro_wavefunction.rst index 9fe7fee666..ab814fd110 100644 --- a/docs/intro_wavefunction.rst +++ b/docs/intro_wavefunction.rst @@ -936,11 +936,11 @@ The `rotated_sposet` element requires use of the updated `sposet_collection` sty .. _Table_rotated_sposet: .. table:: - +-----------------+-----------------------+ - | Parent elements | ``sposet_collection`` | - +-----------------+-----------------------+ - | Child elements | ``sposet`` | - +-----------------+-----------------------+ + +-----------------+--------------------------+ + | Parent elements | ``sposet_collection`` | + +-----------------+--------------------------+ + | Child elements | ``sposet``, ``opt_vars`` | + +-----------------+--------------------------+ Attribute: @@ -968,6 +968,11 @@ Attribute: + +The `opt_vars` element can be used to specify initial rotation parameters. +The parameters are given as a space-separated list of numbers in the element text. +The length of this list must match the expected number of rotation parameters. + .. _backflow: Backflow Wavefunctions From fcd15cd8864d073c90ed6d55cde57831692bc058 Mon Sep 17 00:00:00 2001 From: "Paul R. C. Kent" Date: Thu, 14 Sep 2023 16:26:54 -0400 Subject: [PATCH 4/4] Tweak description --- docs/intro_wavefunction.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/intro_wavefunction.rst b/docs/intro_wavefunction.rst index ab814fd110..437e64951e 100644 --- a/docs/intro_wavefunction.rst +++ b/docs/intro_wavefunction.rst @@ -917,13 +917,14 @@ the associated CSF, and the excitation degree relative to the first determinant. Orbital Rotation ---------------- Orbital rotation mixes orbitals between those occupied by electrons and those unoccupied by electrons. -Because it changes the orbitals, orbital rotation can change the nodal structure and improve the fixed-node DMC energy. +Because it changes the orbitals, a well-chosen optimized orbital rotation can improve the trial wavefunction for VMC, +can change the nodal structure, and can potentially improve the fixed-node DMC energy. Combining orbitals is complicated by the need to maintain the normalization of the orbitals. A rotation matrix will preserve the normalization of the vectors in linear combinations. However the entries in a rotation matrix are not independent. -A rotation matrix can be expressed as the matrix exponential of a skew-symmetric matrix. +A rotation matrix can alternatively be expressed as the matrix exponential of a skew-symmetric matrix. The entries in that skew-symmetric matrix are independent and can form an independent set of optimizable parameters. Optimizable orbitals are given in the input file by enclosing an SPO