From a06f7f0a39ee740561751b741e6bb3e19e32d4ab Mon Sep 17 00:00:00 2001 From: Yuchen Xiao Date: Sat, 11 Apr 2026 18:18:20 -0400 Subject: [PATCH] docs: add instructions to use `diffpy.apps runmacro ` --- docs/example/runmacro_example.zip | Bin 0 -> 39121 bytes .../api/diffpy.apps.example_package.rst | 31 ---- docs/source/api/diffpy.apps.rst | 30 ---- docs/source/getting-started.rst | 158 +++++++++++++----- docs/source/index.rst | 1 - docs/source/snippets/example-table.rst | 28 ---- news/dsl-instruction.rst | 23 +++ 7 files changed, 138 insertions(+), 133 deletions(-) create mode 100644 docs/example/runmacro_example.zip delete mode 100644 docs/source/api/diffpy.apps.example_package.rst delete mode 100644 docs/source/api/diffpy.apps.rst delete mode 100644 docs/source/snippets/example-table.rst create mode 100644 news/dsl-instruction.rst diff --git a/docs/example/runmacro_example.zip b/docs/example/runmacro_example.zip new file mode 100644 index 0000000000000000000000000000000000000000..44b5f62775724b560412582785d8b18030d13fc3 GIT binary patch literal 39121 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 literal 0 HcmV?d00001 diff --git a/docs/source/api/diffpy.apps.example_package.rst b/docs/source/api/diffpy.apps.example_package.rst deleted file mode 100644 index 6b2f76e..0000000 --- a/docs/source/api/diffpy.apps.example_package.rst +++ /dev/null @@ -1,31 +0,0 @@ -.. _example_package documentation: - -|title| -======= - -.. |title| replace:: diffpy.apps.example_package package - -.. automodule:: diffpy.apps.example_package - :members: - :undoc-members: - :show-inheritance: - -|foo| ------ - -.. |foo| replace:: diffpy.apps.example_package.foo module - -.. automodule:: diffpy.apps.example_package.foo - :members: - :undoc-members: - :show-inheritance: - -|bar| ------ - -.. |bar| replace:: diffpy.apps.example_package.bar module - -.. automodule:: diffpy.apps.example_package.foo - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/api/diffpy.apps.rst b/docs/source/api/diffpy.apps.rst deleted file mode 100644 index bd4ee3c..0000000 --- a/docs/source/api/diffpy.apps.rst +++ /dev/null @@ -1,30 +0,0 @@ -:tocdepth: -1 - -|title| -======= - -.. |title| replace:: diffpy.apps package - -.. automodule:: diffpy.apps - :members: - :undoc-members: - :show-inheritance: - -Subpackages ------------ - -.. toctree:: - diffpy.apps.example_package - -Submodules ----------- - -|module| --------- - -.. |module| replace:: diffpy.apps.example_submodule module - -.. automodule:: diffpy.apps.example_submodule - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/getting-started.rst b/docs/source/getting-started.rst index 6b62bf8..077bc0e 100644 --- a/docs/source/getting-started.rst +++ b/docs/source/getting-started.rst @@ -8,72 +8,144 @@ Getting started ================ -Here are some example templates provided to help you get started with writing your documentation. You can use these templates to create your own documentation. +``diffpy.apps`` provides user applications to help with tasks using +diffpy packages. This page contains the instructions for all applications +available, including: -Reuse ``.rst`` files across multiple pages ------------------------------------------- +- :ref:`runmacro` -Here is how you can reuse a reusable block of ``.rst`` files across multiple pages: +.. _runmacro: -.. include:: snippets/example-table.rst +Use ``runmacro`` to start refinement with a macro file +------------------------------------------------------ -.. warning:: +The ``runmacro`` application allows users to execute macros written in the +diffpy macro language. - Ensure that the ``.rst`` file you are including is not too long. If it is too long, it may be better to split it into multiple files and include them separately. +.. code-block:: bash -Refer to a specific section in the documentation ------------------------------------------------- + diffpy.app runmacro -You can use the ``ref`` tag to refer to a specific section in the documentation. For example, you can refer to the section below using the ``:ref:`` tag as shown :ref:`here `. +To follow the example, -.. note:: +1. download the example files from :download:`here <../example/runmacro_example.zip>` - Please check the raw ``.rst`` file of this page to see the exact use of the ``:ref:`` tag. +2. extract the downloaded files and navigate to the extracted directory + +.. code-block:: bash -Embed your code snippets in the documentation ---------------------------------------------- + mv /path/to/runmacro runmacro_example.zip working_directory + cd working_directory + unzip runmacro_example.zip -Here is how you can write a block of code in the documentation. You can use the ``code-block`` directive to write a block of code in the documentation. For example, you can write a block of code as shown below: +3. run the macro using the ``runmacro`` application .. code-block:: bash - # Create a new environment, without build dependencies (pure Python package) - conda create -n -env python=3.14 \ - --file requirements/tests.txt \ - --file requirements/conda.txt + diffpy.app runmacro example_macro.dp-in + +How to write macro +~~~~~~~~~~~~~~~~~~ + +Let's still use the Ni example created earlier, but this time we will +write the macro file from scratch. + +1. Prepare the structure and profile file you want to work with. + +.. note:: + + The structure file is a ``.cif`` file representing the atomic arrangement in + your sample, and the profile file is a ``.gr`` file containing the + experimental data. + +Start the macro file with the following two lines: + +.. code-block:: text + + load structure G1 from "path/to/structure.cif" + load profile exp_ni from "path/to/profile.gr" - # Create a new environment, with build dependencies (non-pure Python package) - conda create -n -env python=3.14 \ - --file requirements/tests.txt \ - --file requirements/conda.txt \ - --file requirements/build.txt +``G1`` and ``exp_ni`` are the identifiers used in the macro to refer to the +structure and profile files, respectively. Quotes ``""`` are must to specify +the file paths. - # Activate the environment - conda activate _env +2. (Optional) Declare the space group of the structure. - # Install your package locally - # `--no-deps` to NOT install packages again from `requirements.pip.txt` - pip install -e . --no-deps +.. code-block:: text - # Run pytest locally - pytest + set G1 spacegroup as Fm-3m - # ... run example tutorials +``G1`` is the identifier for the structure file loaded earlier. Space group +symmetry ``Fm-3m`` is preserved during the refinement. You can also set +it to be ``auto`` to use the one automatically parsed from the structure file. +But if space group is not provided, nor can it be determined from the structure +file, it will be considered as ``P1`` space group. -.. _attach-image: +3. (Optional) Set the calculation parameters for the refinement. -Attach an image to the documentation ------------------------------------- +.. code-block:: text -Here is how you attach an image to the documentation. The ``/docs/source/img/scikit-package-logo-text.png`` example image is provided in the template. + set exp_ni calculation_range as 0.5 20.0 0.01 # r_min, r_max, r_step + set exp_ni q_range as 0.5 20.0 # q_min, q_max -.. image:: ./img/scikit-package-logo-text.png - :alt: codecov-in-pr-comment - :width: 400px - :align: center +``exp_ni`` is the identifier for the profile file loaded earlier. +``calculation_range`` specifies the range and step size for the calculation, +while ``q_range`` specifies the range of Q values to be used in the refinement. +If calculation parameters are not set, it will use the ones +that are defined in the profile file. -Other useful directives ------------------------ +4. Create the refinement equation. -Here is how you can do menu selection :menuselection:`Admin --> Settings` and display labels for buttons like :guilabel:`Privacy level`. +.. code-block:: text + + create equation variables s0 + set equation as "G1*s0" + +``G1`` is the identifier for the structure file loaded earlier. In the +equation, it represents the PDF data generated from the structure `G1`. +``s0`` is created to count for the scaling factor. + +5. Store the results. + +.. code-block:: text + + save to "output_results.json" + +The results of the refinement will be saved to a file +named ``output_results.json``. + +6. List variables to be refined. + +.. code-block:: text + + variables: + --- + - G1.a: 3.52 + - s0: 0.4 + - G1.Uiso_0: 0.005 + - G1.delta2: 2 + - qdamp: 0.04 + - qbroad: 0.02 + --- + +Only variables listed in this section will be refined during the +execution of the macro, and the variables will also be refined in that order. +Variables with initial values specified here will be used as the +starting point for the refinement. + +.. note:: + The naming of variables follows the format + ``structure_identifier.parameter``, + ``profile_parameter``, or + ``equation_parameter``. + + For parameters belonging to a specific atom in the parameter, + the naming follows the format ``structure_identifier.parameter_atomindex``. + e.g. ``G1.Uiso_0`` here refers to the Uiso parameter of the first atom in + the structure ``G1``. + + For constrained parameters, it will use the first parameter in the + constraint. e.g. Here, lattice parameter ``a=b=c``, + and ``Usio_0=Uiso_i, i=1,2,3``, ``a`` and ``Uiso_0`` are used as the + reference variables. diff --git a/docs/source/index.rst b/docs/source/index.rst index 1f23a40..d83fcef 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -44,7 +44,6 @@ Table of contents :maxdepth: 2 getting-started - Package API release license diff --git a/docs/source/snippets/example-table.rst b/docs/source/snippets/example-table.rst deleted file mode 100644 index 7c4c11d..0000000 --- a/docs/source/snippets/example-table.rst +++ /dev/null @@ -1,28 +0,0 @@ -.. list-table:: 5 levels of reusing/sharing code - :widths: 5 15 40 40 - :header-rows: 1 - - * - Level - - Name - - Scope - - How to setup - * - 1 - - ``function`` - - Reuse code in the single file. - - See Level 1 tutorial - * - 2 - - ``module`` - - Reuse code across files. - - See Level 2 tutorial - * - 3 - - ``workspace`` - - Reuse code across project folders. - - ``package create workspace`` - * - 4 - - ``system`` - - Reuse code across any files in the computer. - - ``package create system`` - * - 5 - - ``public`` - - Share code as publicly installable package. - - ``package create public`` diff --git a/news/dsl-instruction.rst b/news/dsl-instruction.rst new file mode 100644 index 0000000..e957887 --- /dev/null +++ b/news/dsl-instruction.rst @@ -0,0 +1,23 @@ +**Added:** + +* No news added: Add instructions to use diffpy.apps runmacro . + +**Changed:** + +* + +**Deprecated:** + +* + +**Removed:** + +* + +**Fixed:** + +* + +**Security:** + +*