diff --git a/manual/develop/en/cif2x-usersguide.pdf b/manual/develop/en/cif2x-usersguide.pdf index 31657df..f60d9d7 100644 Binary files a/manual/develop/en/cif2x-usersguide.pdf and b/manual/develop/en/cif2x-usersguide.pdf differ diff --git a/manual/develop/en/html/.buildinfo b/manual/develop/en/html/.buildinfo index abfd504..952c501 100644 --- a/manual/develop/en/html/.buildinfo +++ b/manual/develop/en/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: eafbe37023600c0e9e2edc8f72e91e41 +config: 8336bb9069069badc2ccc5be38eaf940 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/manual/develop/en/html/_sources/cif2x/about/index.rst.txt b/manual/develop/en/html/_sources/cif2x/about/index.rst.txt index 7b7919d..26f19b2 100644 --- a/manual/develop/en/html/_sources/cif2x/about/index.rst.txt +++ b/manual/develop/en/html/_sources/cif2x/about/index.rst.txt @@ -12,8 +12,7 @@ Therefore, the development of tools and environments for the rapid generation of Cif2x is a tool that generates input files for first-principles calculations from cif files. It constructs parts that vary depending on the type of material and computational conditions from crystal structure data, using input parameters as a template. It is capable of generating multiple input files tailored to specific computational conditions. -Currently, it supports `VASP `, `Quantum ESPRESSO `, and `OpenMX `, -with plans to support `AkaiKKR ` in the future. +Currently, it supports `VASP `_, `Quantum ESPRESSO `_, `OpenMX `_, and `AkaiKKR `_. License ---------------------------------------------------------------- @@ -25,8 +24,6 @@ Contributors This software was developed by the following contributors. -- ver.1.0-alpha (Released on 2023/12/28) - - Developers - Kazuyoshi Yoshimi (The Instutite for Solid State Physics, The University of Tokyo) @@ -49,6 +46,17 @@ This software was developed by the following contributors. - Taisuke Ozaki (The Instutite for Solid State Physics, The University of Tokyo) +Release history +---------------------------------------------------------------- + + ver.1.0.1 + Released on 2024/03/31 + + ver.1.0.0 + Released on 2024/03/19 + + ver.1.0-alpha + Released on 2023/12/28 Copyright ---------------------------------------------------------------- diff --git a/manual/develop/en/html/_sources/cif2x/basic-usage.rst.txt b/manual/develop/en/html/_sources/cif2x/basic-usage.rst.txt index ce44218..9aabaf6 100644 --- a/manual/develop/en/html/_sources/cif2x/basic-usage.rst.txt +++ b/manual/develop/en/html/_sources/cif2x/basic-usage.rst.txt @@ -14,6 +14,7 @@ Installation and basic usage - pandas module - monty module - OpenBabel module (optional) + - AkaiKKRPythonUtil module **Official pages** @@ -39,6 +40,15 @@ Installation and basic usage The executable file ``cif2x`` will be installed. You may need to add ``--user`` option next to ``install`` keyword above in case you are not allowed to install packages system-wide. + AkaiKKRPythonUtil module need to be installed separately. The source package is available from `the repository `_. Then follow the steps below to install the module along with the required seaborn module: + + .. code-block:: bash + + $ git clone https://github.com/AkaiKKRteam/AkaiKKRPythonUtil.git + $ cd ./AkaiKKRPythonUtil/library/PyAkaiKKR + $ python3 -m pip install . + $ python3 -m pip install seaborn + **Directory structure** @@ -70,13 +80,18 @@ Installation and basic usage | |-- openmx/ | | |-- __init__.py | | |-- vps_table.py + | |-- struct2akaikkr.py + | |-- akaikkr/ + | | |-- make_input.py + | | |-- read_input.py + | | |-- run_cif2kkr.py | |-- utils.py |-- sample/ **Basic usage** - ``cif2x`` is a tool to generate a set of input files for first-principles calculation software. It takes an input parameter file as a template, and generates parameter items that may vary by materials and calculation conditions from crystallographic data. In the present version, ``cif2x`` supports Quantum ESPRESSO, VASP, and OpenMX. + ``cif2x`` is a tool to generate a set of input files for first-principles calculation software. It takes an input parameter file as a template, and generates parameter items that may vary by materials and calculation conditions from crystallographic data. In the present version, ``cif2x`` supports Quantum ESPRESSO, VASP, OpenMX, and AkaiKKR. #. Prepare input parameter file @@ -92,7 +107,7 @@ Installation and basic usage #. Run command - Run ``cif2x`` command with the input parameter file and the crystal structure data as arguments. To generate input files for Quantum ESPRESSO, the target option ``-t QE`` should be specified. The option turns to ``-t VASP`` for VASP, and ``-t OpenMX`` for OpenMX. + Run ``cif2x`` command with the input parameter file and the crystal structure data as arguments. To generate input files for Quantum ESPRESSO, the target option ``-t QE`` should be specified. The option turns to ``-t VASP`` for VASP, ``-t OpenMX`` for OpenMX, and ``-t AkaiKKR`` for AkaiKKR. .. code-block:: bash diff --git a/manual/develop/en/html/_sources/cif2x/command/index.rst.txt b/manual/develop/en/html/_sources/cif2x/command/index.rst.txt index 0be10aa..2aa37a0 100644 --- a/manual/develop/en/html/_sources/cif2x/command/index.rst.txt +++ b/manual/develop/en/html/_sources/cif2x/command/index.rst.txt @@ -35,7 +35,9 @@ DESCRIPTION: - ``VASP``: generates input files for VASP. - - ``OpenMX``: generates input files for OpenMX + - ``OpenMX``: generates input files for OpenMX. + + - ``AkaiKKR``: generates input files for AkaiKKR. - ``input_yaml`` diff --git a/manual/develop/en/html/_sources/cif2x/filespec/index.rst.txt b/manual/develop/en/html/_sources/cif2x/filespec/index.rst.txt index bdf1ee0..c99d2c5 100644 --- a/manual/develop/en/html/_sources/cif2x/filespec/index.rst.txt +++ b/manual/develop/en/html/_sources/cif2x/filespec/index.rst.txt @@ -269,3 +269,32 @@ content This parameter specifies the set of pseudo-atomic orbitals listed in Tables 1 and 2 of Section 10.6 of the OpenMX manual. It is one of ``quick``, ``standard``, or ``precise``. The default value is ``quick``. +Parameters for AkaiKKR +=============================== + +The entries of ``optional`` section and ``content`` part of the ``tasks`` section specific to AkaiKKR are explained below. + +optional +-------- + + ``workdir`` + + This parameter specifies the directory in which temporal files are stored. If it is not given, ``/tmp`` or the value of the environment variable ``TMPDIR`` is used. + + +content +-------- + +The ``content`` part contains the input parameters of AkaiKKR. +A blank is written to the input file for an unspecified parameter, to which the default value defined in AkaiKKR will be assumed. +The parameter values listed below are replaced by the values obtained from the crystal structure data. + +- ``brvtyp``, except when it is set to ``aux`` (or a string that contains ``aux``). + +- lattice parameters, ``a``, ``c/a``, ``b/a``, ``alpha``, ``beta``, ``gamma``, ``r1``, ``r2``, ``r3``. + +- type information, ``ntyp``, ``type``, ``ncmp``, ``rmt``, ``field``, ``mxl``, ``anclr``, ``conc``. + +- element information, ``natm``, ``atmicx``, ``atmtyp``. + +For ``rmt`` and ``field``, the values specified in the input parameter file will be used only when they are lists having the same number of elements as ``ntyp``. diff --git a/manual/develop/en/html/_sources/cif2x/tutorial/index.rst.txt b/manual/develop/en/html/_sources/cif2x/tutorial/index.rst.txt index 758edac..5abdf05 100644 --- a/manual/develop/en/html/_sources/cif2x/tutorial/index.rst.txt +++ b/manual/develop/en/html/_sources/cif2x/tutorial/index.rst.txt @@ -4,7 +4,7 @@ Tutorial ================================================================ The procedure to use the input file generator ``cif2x`` for first-principles calculation software consists of preparing an input parameter file, crystal structure data, and pseudo-potential files, and running the program ``cif2x``. -In the current version, the supported software includes Quantum ESPRESSO, VASP, and OpenMX. +In the current version, the supported software includes Quantum ESPRESSO, VASP, OpenMX, and AkaiKKR. In this tutorial, we will explain the steps along a sample for Quantum ESPRESSO in ``docs/tutorial/cif2x``. diff --git a/manual/develop/en/html/_static/alabaster.css b/manual/develop/en/html/_static/alabaster.css index 78b7a4a..55f9cb1 100644 --- a/manual/develop/en/html/_static/alabaster.css +++ b/manual/develop/en/html/_static/alabaster.css @@ -69,6 +69,11 @@ div.relations { } +div.sphinxsidebar { + max-height: 100%; + overflow-y: auto; +} + div.sphinxsidebar a { color: #444; text-decoration: none; @@ -155,6 +160,14 @@ div.sphinxsidebar input { font-size: 1em; } +div.sphinxsidebar #searchbox input[type="text"] { + width: 160px; +} + +div.sphinxsidebar .search > div { + display: table-cell; +} + div.sphinxsidebar hr { border: none; height: 1px; @@ -638,15 +651,7 @@ a:hover tt, a:hover code { display: none!important; } -/* Make nested-list/multi-paragraph items look better in Releases changelog - * pages. Without this, docutils' magical list fuckery causes inconsistent - * formatting between different release sub-lists. - */ -div#changelog > div.section > ul > li > p:only-child { - margin-bottom: 0; -} - -/* Hide fugly table cell borders in ..bibliography:: directive output */ +/* Hide ugly table cell borders in ..bibliography:: directive output */ table.docutils.citation, table.docutils.citation td, table.docutils.citation th { border: none; /* Below needed in some edge cases; if not applied, bottom shadows appear */ diff --git a/manual/develop/en/html/_static/basic.css b/manual/develop/en/html/_static/basic.css index 30fee9d..e5179b7 100644 --- a/manual/develop/en/html/_static/basic.css +++ b/manual/develop/en/html/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -222,7 +222,7 @@ table.modindextable td { /* -- general body styles --------------------------------------------------- */ div.body { - min-width: 360px; + min-width: inherit; max-width: 800px; } diff --git a/manual/develop/en/html/_static/doctools.js b/manual/develop/en/html/_static/doctools.js index d06a71d..4d67807 100644 --- a/manual/develop/en/html/_static/doctools.js +++ b/manual/develop/en/html/_static/doctools.js @@ -4,7 +4,7 @@ * * Base JavaScript utilities for all Sphinx HTML documentation. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/manual/develop/en/html/_static/documentation_options.js b/manual/develop/en/html/_static/documentation_options.js index c85b95c..d94acc6 100644 --- a/manual/develop/en/html/_static/documentation_options.js +++ b/manual/develop/en/html/_static/documentation_options.js @@ -1,5 +1,5 @@ const DOCUMENTATION_OPTIONS = { - VERSION: '1.0-dev', + VERSION: '1.0.1', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/manual/develop/en/html/_static/language_data.js b/manual/develop/en/html/_static/language_data.js index 250f566..367b8ed 100644 --- a/manual/develop/en/html/_static/language_data.js +++ b/manual/develop/en/html/_static/language_data.js @@ -5,7 +5,7 @@ * This script contains the language-specific data used by searchtools.js, * namely the list of stopwords, stemmer, scorer and splitter. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -13,7 +13,7 @@ var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; -/* Non-minified version is copied as a separate JS file, is available */ +/* Non-minified version is copied as a separate JS file, if available */ /** * Porter Stemmer diff --git a/manual/develop/en/html/_static/searchtools.js b/manual/develop/en/html/_static/searchtools.js index 7918c3f..b08d58c 100644 --- a/manual/develop/en/html/_static/searchtools.js +++ b/manual/develop/en/html/_static/searchtools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for the full-text search. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -99,7 +99,7 @@ const _displayItem = (item, searchTerms, highlightTerms) => { .then((data) => { if (data) listItem.appendChild( - Search.makeSearchSummary(data, searchTerms) + Search.makeSearchSummary(data, searchTerms, anchor) ); // highlight search terms in the summary if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js @@ -116,8 +116,8 @@ const _finishSearch = (resultCount) => { ); else Search.status.innerText = _( - `Search finished, found ${resultCount} page(s) matching the search query.` - ); + "Search finished, found ${resultCount} page(s) matching the search query." + ).replace('${resultCount}', resultCount); }; const _displayNextItem = ( results, @@ -137,6 +137,22 @@ const _displayNextItem = ( // search finished, update title and status message else _finishSearch(resultCount); }; +// Helper function used by query() to order search results. +// Each input is an array of [docname, title, anchor, descr, score, filename]. +// Order the results by score (in opposite order of appearance, since the +// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. +const _orderResultsByScoreThenName = (a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; +}; /** * Default splitQuery function. Can be overridden in ``sphinx.search`` with a @@ -160,13 +176,26 @@ const Search = { _queued_query: null, _pulse_status: -1, - htmlToText: (htmlString) => { + htmlToText: (htmlString, anchor) => { const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); - htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); + for (const removalQuery of [".headerlink", "script", "style"]) { + htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() }); + } + if (anchor) { + const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`); + if (anchorContent) return anchorContent.textContent; + + console.warn( + `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.` + ); + } + + // if anchor not specified or not found, fall back to main content const docContent = htmlElement.querySelector('[role="main"]'); - if (docContent !== undefined) return docContent.textContent; + if (docContent) return docContent.textContent; + console.warn( - "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template." ); return ""; }, @@ -239,16 +268,7 @@ const Search = { else Search.deferQuery(query); }, - /** - * execute search (requires search index to be loaded) - */ - query: (query) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - const allTitles = Search._index.alltitles; - const indexEntries = Search._index.indexentries; - + _parseQuery: (query) => { // stem the search terms and add them to the correct list const stemmer = new Stemmer(); const searchTerms = new Set(); @@ -284,21 +304,38 @@ const Search = { // console.info("required: ", [...searchTerms]); // console.info("excluded: ", [...excludedTerms]); - // array of [docname, title, anchor, descr, score, filename] - let results = []; + return [query, searchTerms, excludedTerms, highlightTerms, objectTerms]; + }, + + /** + * execute search (requires search index to be loaded) + */ + _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // Collect multiple result groups to be sorted separately and then ordered. + // Each is an array of [docname, title, anchor, descr, score, filename]. + const normalResults = []; + const nonMainIndexResults = []; + _removeChildren(document.getElementById("search-progress")); - const queryLower = query.toLowerCase(); + const queryLower = query.toLowerCase().trim(); for (const [title, foundTitles] of Object.entries(allTitles)) { - if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { + if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) { for (const [file, id] of foundTitles) { - let score = Math.round(100 * queryLower.length / title.length) - results.push([ + const score = Math.round(Scorer.title * queryLower.length / title.length); + const boost = titles[file] === title ? 1 : 0; // add a boost for document titles + normalResults.push([ docNames[file], titles[file] !== title ? `${titles[file]} > ${title}` : title, id !== null ? "#" + id : "", null, - score, + score + boost, filenames[file], ]); } @@ -308,46 +345,47 @@ const Search = { // search for explicit entries in index directives for (const [entry, foundEntries] of Object.entries(indexEntries)) { if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { - for (const [file, id] of foundEntries) { - let score = Math.round(100 * queryLower.length / entry.length) - results.push([ + for (const [file, id, isMain] of foundEntries) { + const score = Math.round(100 * queryLower.length / entry.length); + const result = [ docNames[file], titles[file], id ? "#" + id : "", null, score, filenames[file], - ]); + ]; + if (isMain) { + normalResults.push(result); + } else { + nonMainIndexResults.push(result); + } } } } // lookup as object objectTerms.forEach((term) => - results.push(...Search.performObjectSearch(term, objectTerms)) + normalResults.push(...Search.performObjectSearch(term, objectTerms)) ); // lookup as search terms in fulltext - results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms)); // let the scorer override scores with a custom scoring function - if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); - - // now sort the results by score (in opposite order of appearance, since the - // display function below uses pop() to retrieve items) and then - // alphabetically - results.sort((a, b) => { - const leftScore = a[4]; - const rightScore = b[4]; - if (leftScore === rightScore) { - // same score: sort alphabetically - const leftTitle = a[1].toLowerCase(); - const rightTitle = b[1].toLowerCase(); - if (leftTitle === rightTitle) return 0; - return leftTitle > rightTitle ? -1 : 1; // inverted is intentional - } - return leftScore > rightScore ? 1 : -1; - }); + if (Scorer.score) { + normalResults.forEach((item) => (item[4] = Scorer.score(item))); + nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item))); + } + + // Sort each group of results by score and then alphabetically by name. + normalResults.sort(_orderResultsByScoreThenName); + nonMainIndexResults.sort(_orderResultsByScoreThenName); + + // Combine the result groups in (reverse) order. + // Non-main index entries are typically arbitrary cross-references, + // so display them after other results. + let results = [...nonMainIndexResults, ...normalResults]; // remove duplicate search results // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept @@ -361,7 +399,12 @@ const Search = { return acc; }, []); - results = results.reverse(); + return results.reverse(); + }, + + query: (query) => { + const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query); + const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms); // for debugging //Search.lastresults = results.slice(); // a copy @@ -466,14 +509,18 @@ const Search = { // add support for partial matches if (word.length > 2) { const escapedWord = _escapeRegExp(word); - Object.keys(terms).forEach((term) => { - if (term.match(escapedWord) && !terms[word]) - arr.push({ files: terms[term], score: Scorer.partialTerm }); - }); - Object.keys(titleTerms).forEach((term) => { - if (term.match(escapedWord) && !titleTerms[word]) - arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); - }); + if (!terms.hasOwnProperty(word)) { + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + } + if (!titleTerms.hasOwnProperty(word)) { + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: titleTerms[term], score: Scorer.partialTitle }); + }); + } } // no match but word was a required one @@ -496,9 +543,8 @@ const Search = { // create the mapping files.forEach((file) => { - if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) - fileMap.get(file).push(word); - else fileMap.set(file, [word]); + if (!fileMap.has(file)) fileMap.set(file, [word]); + else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); }); }); @@ -549,8 +595,8 @@ const Search = { * search summary for a given text. keywords is a list * of stemmed words. */ - makeSearchSummary: (htmlText, keywords) => { - const text = Search.htmlToText(htmlText); + makeSearchSummary: (htmlText, keywords, anchor) => { + const text = Search.htmlToText(htmlText, anchor); if (text === "") return null; const textLower = text.toLowerCase(); diff --git a/manual/develop/en/html/cif2x/about/index.html b/manual/develop/en/html/cif2x/about/index.html index d56ae63..9bd0028 100644 --- a/manual/develop/en/html/cif2x/about/index.html +++ b/manual/develop/en/html/cif2x/about/index.html @@ -5,11 +5,11 @@ - 1. Introduction — cif2x Users Guide 1.0-dev documentation + 1. Introduction — cif2x Users Guide 1.0.1 documentation - - - + + + @@ -19,8 +19,9 @@ + + - @@ -42,8 +43,7 @@

1.1. What is cif2x?Cif2x is a tool that generates input files for first-principles calculations from cif files. It constructs parts that vary depending on the type of material and computational conditions from crystal structure data, using input parameters as a template. It is capable of generating multiple input files tailored to specific computational conditions. -Currently, it supports VASP <https://www.vasp.at>, Quantum ESPRESSO <https://www.quantum-espresso.org>, and OpenMX <http://www.openmx-square.org>, -with plans to support AkaiKKR <http://kkr.issp.u-tokyo.ac.jp> in the future.

+Currently, it supports
VASP, Quantum ESPRESSO, OpenMX, and AkaiKKR.

1.2. License

@@ -52,9 +52,8 @@

1.2. License

1.3. Contributors

This software was developed by the following contributors.

-
    -
  • ver.1.0-alpha (Released on 2023/12/28)

    -
      +
      +
      • Developers

        • Kazuyoshi Yoshimi (The Instutite for Solid State Physics, The University of Tokyo)

        • @@ -73,16 +72,28 @@

          1.3. Contributors

        -
      • -
      +
      +

+
+

1.4. Release history

+
+
+
ver.1.0.1

Released on 2024/03/31

+
+
ver.1.0.0

Released on 2024/03/19

+
+
ver.1.0-alpha

Released on 2023/12/28

+
+
+
-

1.5. Operating environment

+

1.6. Operating environment

This tool was tested on the following platforms:

  • Ubuntu Linux + python3

  • @@ -95,7 +106,7 @@

    1.5. Operating environment +

- + @@ -154,11 +165,11 @@

Quick search

-

Directory structure

@@ -99,6 +108,11 @@

2. Installation and basic usage| |-- openmx/ | | |-- __init__.py | | |-- vps_table.py +| |-- struct2akaikkr.py +| |-- akaikkr/ +| | |-- make_input.py +| | |-- read_input.py +| | |-- run_cif2kkr.py | |-- utils.py |-- sample/ @@ -106,7 +120,7 @@

2. Installation and basic usage

Basic usage

-

cif2x is a tool to generate a set of input files for first-principles calculation software. It takes an input parameter file as a template, and generates parameter items that may vary by materials and calculation conditions from crystallographic data. In the present version, cif2x supports Quantum ESPRESSO, VASP, and OpenMX.

+

cif2x is a tool to generate a set of input files for first-principles calculation software. It takes an input parameter file as a template, and generates parameter items that may vary by materials and calculation conditions from crystallographic data. In the present version, cif2x supports Quantum ESPRESSO, VASP, OpenMX, and AkaiKKR.

  1. Prepare input parameter file

    @@ -122,7 +136,7 @@

    2. Installation and basic usage
  2. Run command

    -
- + @@ -196,11 +210,11 @@

Quick search

- + @@ -146,11 +148,11 @@

Quick search

+
+

5.5. Parameters for AkaiKKR

+

The entries of optional section and content part of the tasks section specific to AkaiKKR are explained below.

+
+

optional

+
+

workdir

+
+

This parameter specifies the directory in which temporal files are stored. If it is not given, /tmp or the value of the environment variable TMPDIR is used.

+
+
+
+
+

content

+

The content part contains the input parameters of AkaiKKR. +A blank is written to the input file for an unspecified parameter, to which the default value defined in AkaiKKR will be assumed. +The parameter values listed below are replaced by the values obtained from the crystal structure data.

+
    +
  • brvtyp, except when it is set to aux (or a string that contains aux).

  • +
  • lattice parameters, a, c/a, b/a, alpha, beta, gamma, r1, r2, r3.

  • +
  • type information, ntyp, type, ncmp, rmt, field, mxl, anclr, conc.

  • +
  • element information, natm, atmicx, atmtyp.

  • +
+

For rmt and field, the values specified in the input parameter file will be used only when they are lists having the same number of elements as ntyp.

+
+
@@ -290,7 +317,7 @@

content - - -

実行プログラム cif2x がインストールされます。

+

なお、AkaiKKRPythonUtil モジュールは別途インストールが必要です。 +以下の手順で 配布サイト からソースコードを取得しインストールします。また、必要な seaborn モジュールもインストールしておきます。

+
$ git clone https://github.com/AkaiKKRteam/AkaiKKRPythonUtil.git
+$ cd ./AkaiKKRPythonUtil/library/PyAkaiKKR
+$ python3 -m pip install .
+$ python3 -m pip install seaborn
+
+

ディレクトリ構成

@@ -97,6 +108,11 @@

2. インストールと基本的な使 | |-- openmx/ | | |-- __init__.py | | |-- vps_table.py +| |-- struct2akaikkr.py +| |-- akaikkr/ +| | |-- make_input.py +| | |-- read_input.py +| | |-- run_cif2kkr.py | |-- utils.py |-- sample/ @@ -104,7 +120,7 @@

2. インストールと基本的な使

基本的な使用方法

-

cif2xは第一原理計算プログラムのための入力ファイルを生成するツールです。入力パラメータを雛形として、物質の種類や計算条件によって変わる箇所を結晶構造データなどから構成します。現在は Quantum ESPRESSO, VASP, および OpenMX の入力ファイル形式に対応しています。

+

cif2xは第一原理計算プログラムのための入力ファイルを生成するツールです。入力パラメータを雛形として、物質の種類や計算条件によって変わる箇所を結晶構造データなどから構成します。現在は Quantum ESPRESSO, VASP, OpenMX, および AkaiKKR の入力ファイル形式に対応しています。

  1. 入力パラメータファイルの作成

    @@ -120,7 +136,7 @@

    2. インストールと基本的な使

  2. コマンドの実行

    -

    作成した入力パラメータファイルおよび結晶構造データファイルを入力としてcif2xプログラムを実行します。Quantum ESPRESSO用の入力ファイルを生成する場合はターゲットオプションに -t QE を指定します。VASPの場合は -t VASP, OpenMX の場合は -t OpenMX を指定します。

    +

    作成した入力パラメータファイルおよび結晶構造データファイルを入力としてcif2xプログラムを実行します。Quantum ESPRESSO用の入力ファイルを生成する場合はターゲットオプションに -t QE を指定します。VASPの場合は -t VASP, OpenMX の場合は -t OpenMX, AkaiKKR の場合は -t akaikkr を指定します。

    $ cif2x -t QE input.yaml material.cif
     
    @@ -135,7 +151,7 @@

    2. インストールと基本的な使

    -
- + @@ -194,11 +210,11 @@

クイック検索

- + @@ -147,11 +149,11 @@

クイック検索

+
+

5.5. AkaiKKR 向けパラメータ

+

optional セクションおよび tasks セクションの content に記載する内容について、AkaiKKR 固有の内容を記述します。

+
+

optional

+
+

workdir

+
+

一時ファイルの出力先を指定します。指定しない場合は /tmp または TMPDIR 環境変数の値を利用します。

+
+
+
+
+

content

+

content には AkaiKKR の入力パラメータの内容を記述します。指定のない項目は空欄が出力され、AkaiKKR内部のデフォルト値が使われます。 +以下のパラメータは結晶構造データから決まる値で置き換えられます。

+
    +
  • brvtyp: +ただし、 brvtypaux (を含む)値が指定されている場合は上書きされません。

  • +
  • 格子パラメータ: a, c/a, b/a, alpha, beta, gamma, r1, r2, r3

  • +
  • タイプ情報: ntyp, type, ncmp, rmt, field, mxl, anclr, conc

  • +
  • 元素種の情報: natm, atmicx, atmtyp

  • +
+

なお、 rmtfield の値は、入力パラメータファイル内で ntyp 個の要素からなるリストとして指定されている場合のみ、入力パラメータファイルの値が使われます。

+
+
@@ -289,7 +316,7 @@

content - - - -