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 @@
This software was developed with the support of “Project for advancement of software usability in materials science” of The Institute for Solid State Physics, The University of Tokyo.
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.