diff --git a/.travis.yml b/.travis.yml index 6920356..7585dfb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,6 +14,8 @@ compiler: env: - OPTIONS="GCC_VERSION=4.7 && MPI=openmpi && TARGET=test_coverage" + - OPTIONS="GCC_VERSION=4.7 && MPI=openmpi && TARGET=test_default" + - OPTIONS="GCC_VERSION=4.7 && MPI=openmpi && TARGET=test_example1" - OPTIONS="GCC_VERSION=4.7 && MPI=mpich2 && TARGET=test" - OPTIONS="GCC_VERSION=4.7 && MPI=openmpi && TARGET=test" - OPTIONS="GCC_VERSION=4.8 && MPI=mpich2 && TARGET=test" @@ -41,7 +43,10 @@ before_install: - if [[ "$MPI" = openmpi ]]; then sudo apt-get -y install -qq openmpi-bin libopenmpi-dev; fi - if [[ "$TARGET" = test_coverage ]]; then pip install --user cpp-coveralls; fi -script: - - make -j10 $TARGET && travis_wait ./test/Ising_OPV_tests.exe && travis_wait mpiexec -n 4 ./test/Ising_OPV_MPI_tests.exe +script: + - if [[ "$TARGET" = test ]]; then make -j10 test && travis_wait ./test/Ising_OPV_tests.exe && travis_wait mpiexec -n 4 ./test/Ising_OPV_MPI_tests.exe; fi + - if [[ "$TARGET" = test_default ]]; then make -j10 && travis_wait mpiexec -n 4 ./Ising_OPV.exe parameters_default.txt; fi + - if [[ "$TARGET" = test_example1 ]]; then make -j10 && travis_wait mpiexec -n 4 ./Ising_OPV.exe ./examples/example1/parameters_ex1.txt; fi + - if [[ "$TARGET" = test_coverage ]]; then make -j10 test_coverage && travis_wait ./test/Ising_OPV_tests.exe && travis_wait mpiexec -n 4 ./test/Ising_OPV_MPI_tests.exe; fi - if [[ "$TARGET" = test_coverage ]]; then coveralls --include src --exclude "googletest/*" --gcov-options '\-lp'; fi - - if [[ "$TARGET" = test ]]; then make -j10 && mpiexec -n 4 ./Ising_OPV.exe parameters_default.txt; fi + diff --git a/Doxyfile b/Doxyfile index 32a9e73..9911432 100644 --- a/Doxyfile +++ b/Doxyfile @@ -38,7 +38,7 @@ PROJECT_NAME = Ising_OPV # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = v4.0-beta.1 +PROJECT_NUMBER = v4.0.0-rc.2 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a @@ -2203,7 +2203,7 @@ PERL_PATH = /usr/bin/perl # powerful graphs. # The default value is: YES. -CLASS_DIAGRAMS = YES +CLASS_DIAGRAMS = NO # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see: @@ -2412,7 +2412,7 @@ INTERACTIVE_SVG = NO # found. If left blank, it is assumed the dot tool can be found in the path. # This tag requires that the tag HAVE_DOT is set to YES. -DOT_PATH = +DOT_PATH = "C:/Program Files (x86)/Graphviz2.38/bin" # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the \dotfile diff --git a/README.md b/README.md index 12c49f4..1df5687 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,8 @@ Generated or imported morphologies are then rigorously analyzed to determine imp - Create morphology sets from imported experimental three-dimensional tomograms - Calculate detailed structural analysis of the morphology set +Tomography data import and analysis workflow + ## Current Status Latest release: [![GitHub (pre-)release](https://img.shields.io/github/release/MikeHeiber/Ising_OPV/all.svg?style=flat-square)](https://github.com/MikeHeiber/Ising_OPV/releases) @@ -35,8 +37,8 @@ Code is being tested using [googletest](https://github.com/google/googletest) wi | Branch | Status | | :------: | ------ | -| Master | [![Coveralls github branch](https://img.shields.io/coveralls/github/MikeHeiber/Ising_OPV/master.svg?style=for-the-badge)](https://coveralls.io/github/MikeHeiber/Ising_OPV?branch=master) | -| Development | [![Coveralls github branch](https://img.shields.io/coveralls/github/MikeHeiber/Ising_OPV/development.svg?style=for-the-badge)](https://coveralls.io/github/MikeHeiber/Ising_OPV?branch=development) | +| Master | [![Coveralls Github branch](https://img.shields.io/coveralls/github/MikeHeiber/Ising_OPV/master.svg?style=for-the-badge)](https://coveralls.io/github/MikeHeiber/Ising_OPV?branch=master) | +| Development | [![Coveralls Github branch](https://img.shields.io/coveralls/github/MikeHeiber/Ising_OPV/development.svg?style=for-the-badge)](https://coveralls.io/github/MikeHeiber/Ising_OPV?branch=development) | ## Contact @@ -81,7 +83,7 @@ Similar batch scripts can also be written for TORQUE or other job schedulers. Regardless of the job scheduler, the program execution command is essentially the same. Ising_OPV.exe takes one required input argument, which is the filename of the input parameter file. -An annotated example parameter file is provided with this package (parameters_default.txt). +An annotated default parameter file is provided with this package (parameters_default.txt). For example, to create 10 morphologies using 10 processors with the default parameters, the command is: @@ -91,11 +93,13 @@ Users can also import morphology sets previously generated by the Ising_OPV tool This will import the morphologies (morphology_0.txt, morphology_1.txt, etc) and assign one to each processor. The morphology files must be located in the working directory to be found and imported. -Finally, users can also import experimental tomogram image data, generate a morphology set from the data, and then perform further operations by enabling tomogram import in the parameter file and specifying the name of tomogram dataset. +Finally, users can also import experimental 3D tomography image data, generate a morphology set from the data, and then perform further operations by enabling tomogram import in the parameter file and specifying the name of tomogram dataset. The tomogram metadata is imported from an XML metadata file and then that is used for interpreting a RAW binary data file that contains the image data. +The metadata format required by Ising_OPV is defined in XML schema definition file, tomogram_metadata.xsd. Once the tomogram data is loaded, the morphology can be segmented into a number of equally size sub-volumes to form a new morphology set, and then the rest of the analysis is performed. Again, the tomogram dataset files must be located in the working directory to be found and imported. -Also, the metadata format required by Ising_OPV is defined in XML schema definition file, tomogram_metadata.xsd. + +For more detailed examples, please see the [Examples](./examples/examples.md) file. #### Simulation Output @@ -124,11 +128,15 @@ While this tool is designed to be primarily controlled through the parameter fil ## Citing this Work If you find Ising_OPV to be helpful for your research, please cite the original study: + [M. C. Heiber and A. Dhinojwala, Phys. Rev. Appl. **2**, 014008 (2014).](http://journals.aps.org/prapplied/abstract/10.1103/PhysRevApplied.2.014008) [[ResearchGate]](https://www.researchgate.net/publication/264419218_Efficient_Generation_of_Model_Bulk_Heterojunction_Morphologies_for_Organic_Photovoltaic_Device_Modeling) If your work involves investigating the effects of morphological tortuosity, please also cite the study that introduced the tortuosity features: + [M.C. Heiber, K. Kister, A. Baumann, V. Dyakonov, C. Deibel, and T.-Q. Nguyen, Phys. Rev. Appl. **8**, 054043 (2017).](https://journals.aps.org/prapplied/abstract/10.1103/PhysRevApplied.8.054043) [[ResearchGate]](https://www.researchgate.net/publication/321226076_Impact_of_Tortuosity_on_Charge-Carrier_Transport_in_Organic_Bulk_Heterojunction_Blends) +In addition, please also cite the DOI for the specific version that you used from [Zenodo.org](https://zenodo.org/search?page=1&size=20&q=conceptrecid:%22592959%22&sort=-version&all_versions=True). + ## Additional Reference List Several peer-reviewed publications discuss the development and application of this software tool: @@ -140,7 +148,7 @@ Several peer-reviewed publications discuss the development and application of th - [M.C. Heiber, K. Kister, A. Baumann, V. Dyakonov, C. Deibel, and T.-Q. Nguyen, Phys. Rev. Appl. **8**, 054043 (2017).](https://journals.aps.org/prapplied/abstract/10.1103/PhysRevApplied.8.054043) [[ResearchGate]](https://www.researchgate.net/publication/321226076_Impact_of_Tortuosity_on_Charge-Carrier_Transport_in_Organic_Bulk_Heterojunction_Blends) ## Acknowledgments -Thank you to Dr. Dean DeLongchamp at NIST for providing access to computing resources that support the ongoing development of v4.0. +Thank you to Dr. Dean M. DeLongchamp at NIST for providing access to computing resources that support the ongoing development of v4.0. Development of v4.0 is supported by financial assistance award 70NANB14H012 from U.S. Department of Commerce, National Institute of Standards and Technology as part of the Center for Hierarchical Materials Design (CHiMaD). Thank you to Klaus Kister for contributing to the development of the updated domain smoothing algorithm and the simplified morphology import procedure in v2.0 and help with testing for v3.0. diff --git a/docs/_c_o_d_e___o_f___c_o_n_d_u_c_t_8md.html b/docs/_c_o_d_e___o_f___c_o_n_d_u_c_t_8md.html new file mode 100644 index 0000000..e89399b --- /dev/null +++ b/docs/_c_o_d_e___o_f___c_o_n_d_u_c_t_8md.html @@ -0,0 +1,106 @@ + + + + + + + +Ising_OPV: CODE_OF_CONDUCT.md File Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Ising_OPV +  v4.0.0-rc.2 +
+
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
CODE_OF_CONDUCT.md File Reference
+
+
+
+
+ + + + diff --git a/docs/_lattice_8cpp.html b/docs/_lattice_8cpp.html index 1a67032..cf29ece 100644 --- a/docs/_lattice_8cpp.html +++ b/docs/_lattice_8cpp.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/_lattice_8h.html b/docs/_lattice_8h.html index 01303d7..15f9a5a 100644 --- a/docs/_lattice_8h.html +++ b/docs/_lattice_8h.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/_lattice_8h_source.html b/docs/_lattice_8h_source.html index c9ecdfe..ef312e0 100644 --- a/docs/_lattice_8h_source.html +++ b/docs/_lattice_8h_source.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/_morphology_8cpp.html b/docs/_morphology_8cpp.html index e3d2bac..82a2f84 100644 --- a/docs/_morphology_8cpp.html +++ b/docs/_morphology_8cpp.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/_morphology_8h.html b/docs/_morphology_8h.html index 29372a1..a2aaf40 100644 --- a/docs/_morphology_8h.html +++ b/docs/_morphology_8h.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/_morphology_8h_source.html b/docs/_morphology_8h_source.html index 441f587..ff36797 100644 --- a/docs/_morphology_8h_source.html +++ b/docs/_morphology_8h_source.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/_parameters_8cpp.html b/docs/_parameters_8cpp.html index 76ae4c5..39e19c1 100644 --- a/docs/_parameters_8cpp.html +++ b/docs/_parameters_8cpp.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/_parameters_8h.html b/docs/_parameters_8h.html index fa6cb62..3b206e3 100644 --- a/docs/_parameters_8h.html +++ b/docs/_parameters_8h.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/_parameters_8h_source.html b/docs/_parameters_8h_source.html index 9cb65ea..88e9a21 100644 --- a/docs/_parameters_8h_source.html +++ b/docs/_parameters_8h_source.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/_r_e_a_d_m_e_8md.html b/docs/_r_e_a_d_m_e_8md.html index 57c37da..9345990 100644 --- a/docs/_r_e_a_d_m_e_8md.html +++ b/docs/_r_e_a_d_m_e_8md.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/_utils_8cpp.html b/docs/_utils_8cpp.html index 45fde8c..cc6f4d6 100644 --- a/docs/_utils_8cpp.html +++ b/docs/_utils_8cpp.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/_utils_8h.html b/docs/_utils_8h.html index 46b5ef6..6a1bec6 100644 --- a/docs/_utils_8h.html +++ b/docs/_utils_8h.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/_utils_8h_source.html b/docs/_utils_8h_source.html index 93cac42..402177a 100644 --- a/docs/_utils_8h_source.html +++ b/docs/_utils_8h_source.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/_version_8cpp.html b/docs/_version_8cpp.html index 44c70f2..7a0fbe8 100644 --- a/docs/_version_8cpp.html +++ b/docs/_version_8cpp.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/_version_8h.html b/docs/_version_8h.html index 285b18e..ecd4bff 100644 --- a/docs/_version_8h.html +++ b/docs/_version_8h.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/_version_8h_source.html b/docs/_version_8h_source.html index 4500a83..73d4213 100644 --- a/docs/_version_8h_source.html +++ b/docs/_version_8h_source.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/annotated.html b/docs/annotated.html index 1513a2f..9eabf6a 100644 --- a/docs/annotated.html +++ b/docs/annotated.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/class_ising___o_p_v_1_1_lattice-members.html b/docs/class_ising___o_p_v_1_1_lattice-members.html index 3802468..5ab19dd 100644 --- a/docs/class_ising___o_p_v_1_1_lattice-members.html +++ b/docs/class_ising___o_p_v_1_1_lattice-members.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/class_ising___o_p_v_1_1_lattice.html b/docs/class_ising___o_p_v_1_1_lattice.html index 7e8aa6a..f4a6135 100644 --- a/docs/class_ising___o_p_v_1_1_lattice.html +++ b/docs/class_ising___o_p_v_1_1_lattice.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/class_ising___o_p_v_1_1_morphology-members.html b/docs/class_ising___o_p_v_1_1_morphology-members.html index 91a1695..2d924d3 100644 --- a/docs/class_ising___o_p_v_1_1_morphology-members.html +++ b/docs/class_ising___o_p_v_1_1_morphology-members.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/class_ising___o_p_v_1_1_morphology.html b/docs/class_ising___o_p_v_1_1_morphology.html index ac3e3f1..638d393 100644 --- a/docs/class_ising___o_p_v_1_1_morphology.html +++ b/docs/class_ising___o_p_v_1_1_morphology.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/class_ising___o_p_v_1_1_parameters-members.html b/docs/class_ising___o_p_v_1_1_parameters-members.html index 4ad78f4..055fd35 100644 --- a/docs/class_ising___o_p_v_1_1_parameters-members.html +++ b/docs/class_ising___o_p_v_1_1_parameters-members.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/class_ising___o_p_v_1_1_parameters.html b/docs/class_ising___o_p_v_1_1_parameters.html index 49b7eb1..d248dcc 100644 --- a/docs/class_ising___o_p_v_1_1_parameters.html +++ b/docs/class_ising___o_p_v_1_1_parameters.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/class_ising___o_p_v_1_1_version-members.html b/docs/class_ising___o_p_v_1_1_version-members.html index 1b11f27..75e71de 100644 --- a/docs/class_ising___o_p_v_1_1_version-members.html +++ b/docs/class_ising___o_p_v_1_1_version-members.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/class_ising___o_p_v_1_1_version.html b/docs/class_ising___o_p_v_1_1_version.html index 44866dd..1dc2ae5 100644 --- a/docs/class_ising___o_p_v_1_1_version.html +++ b/docs/class_ising___o_p_v_1_1_version.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/classes.html b/docs/classes.html index 558c92c..e087fac 100644 --- a/docs/classes.html +++ b/docs/classes.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html index 25c7a1d..9cd8715 100644 --- a/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html +++ b/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/files.html b/docs/files.html index 1e71a73..0004b76 100644 --- a/docs/files.html +++ b/docs/files.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/functions.html b/docs/functions.html index 1d4e04d..59e0740 100644 --- a/docs/functions.html +++ b/docs/functions.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/functions_func.html b/docs/functions_func.html index c0fd2a1..61e99af 100644 --- a/docs/functions_func.html +++ b/docs/functions_func.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/functions_rela.html b/docs/functions_rela.html index 3caf82f..5cddc2b 100644 --- a/docs/functions_rela.html +++ b/docs/functions_rela.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/functions_vars.html b/docs/functions_vars.html index 27a1782..40b13b4 100644 --- a/docs/functions_vars.html +++ b/docs/functions_vars.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/globals.html b/docs/globals.html index 379fb52..64be83e 100644 --- a/docs/globals.html +++ b/docs/globals.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/globals_func.html b/docs/globals_func.html index 2ce5541..23aee7c 100644 --- a/docs/globals_func.html +++ b/docs/globals_func.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/docs/index.html b/docs/index.html index 0b83d33..11e5128 100644 --- a/docs/index.html +++ b/docs/index.html @@ -30,7 +30,7 @@
Ising_OPV -  v4.0-beta.2 +  v4.0.0-rc.2
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
@@ -101,6 +101,9 @@

Major Features:

  • Create morphology sets from imported experimental three-dimensional tomograms
  • Calculate detailed structural analysis of the morphology set
  • +
    +Tomography data import and analysis workflow. +

    Current Status

    The current release is Ising_OPV . All major planned features for v4.0 are now implemented and have undergone significant testing. However, there may still be bugs that need to be fixed. Please report any bugs or submit feature requests in the Issues section.

    Continuous Integration and Testing Status:

    @@ -134,8 +137,9 @@

    Building and Testing the Executable

    In addition, Ising_OPV requires a C++ 11 compatible compiler. The makefile that accompanies this package is setup to work with the GCC and PGI compilers, but can be easily modified for other compilers.

    Once you have an MPI library installed and have an appropriate compiler, to build Ising_OPV, clone the master branch of Ising_OPV to your machine:

    -
    Then, navigate to the Ising_OPV directory and run `make`.
    Once the normal build is successful, you should test Ising_OPV on your own hardware using the unit and system tests provided before you use the tool.
    Build the testing executable by running `make test`.
    Once the test build is complete, run the two test executables `./test/Ising_OPV_tests.exe` and `./test/Ising_OPV_MPI_tests.exe`.
    Please report any build or testing errors in the [Issues](https://github.com/MikeHeiber/Ising_OPV/issues) section. If you do not have any build or testing errors, then you are ready to go!
    #### Running Simulations
    In most cases, your HPC system will use a job scheduler to manage the computing workload.
    For performing Ising_OPV simulations, it is recommended to submit batch jobs where you will request the resources needed to perform the simulation.
    An example batch script for the SLURM job scheduling system is provided with this package (slurm_script.sh).
    Similar batch scripts can also be written for TORQUE or other job schedulers.
    Regardless of the job scheduler, the program execution command is essentially the same.
    Ising_OPV.exe takes one required input argument, which is the filename of the input parameter file.
    An annotated example parameter file is provided with this package (parameters_default.txt).
    For example, to create 10 morphologies using 10 processors with the default parameters, the command is:
    ```mpiexec -n 10 Ising_OPV.exe parameters_default.tx

    Users can also import morphology sets previously generated by the Ising_OPV tool for further modification and analysis by enabling morphology import in the parameter file and running the simulation with -n set to the size of the morphology set. This will import the morphologies (morphology_0.txt, morphology_1.txt, etc) and assign one to each processor. The morphology files must be located in the working directory to be found and imported.

    -

    Finally, users can also import experimental tomogram image data, generate a morphology set from the data, and then perform further operations by enabling tomogram import in the parameter file and specifying the name of tomogram dataset. The tomogram metadata is imported from an XML metadata file and then that is used for interpreting a RAW binary data file that contains the image data. Once the tomogram data is loaded, the morphology can be segmented into a number of equally size sub-volumes to form a new morphology set, and then the rest of the analysis is performed. Again, the tomogram dataset files must be located in the working directory to be found and imported. Also, the metadata format required by Ising_OPV is defined in XML schema definition file, tomogram_metadata.xsd.

    +
    Then, navigate to the Ising_OPV directory and run `make`.
    Once the normal build is successful, you should test Ising_OPV on your own hardware using the unit and system tests provided before you use the tool.
    Build the testing executable by running `make test`.
    Once the test build is complete, run the two test executables `./test/Ising_OPV_tests.exe` and `./test/Ising_OPV_MPI_tests.exe`.
    Please report any build or testing errors in the [Issues](https://github.com/MikeHeiber/Ising_OPV/issues) section. If you do not have any build or testing errors, then you are ready to go!
    #### Running Simulations
    In most cases, your HPC system will use a job scheduler to manage the computing workload.
    For performing Ising_OPV simulations, it is recommended to submit batch jobs where you will request the resources needed to perform the simulation.
    An example batch script for the SLURM job scheduling system is provided with this package (slurm_script.sh).
    Similar batch scripts can also be written for TORQUE or other job schedulers.
    Regardless of the job scheduler, the program execution command is essentially the same.
    Ising_OPV.exe takes one required input argument, which is the filename of the input parameter file.
    An annotated default parameter file is provided with this package (parameters_default.txt).
    For example, to create 10 morphologies using 10 processors with the default parameters, the command is:
    ```mpiexec -n 10 Ising_OPV.exe parameters_default.tx

    Users can also import morphology sets previously generated by the Ising_OPV tool for further modification and analysis by enabling morphology import in the parameter file and running the simulation with -n set to the size of the morphology set. This will import the morphologies (morphology_0.txt, morphology_1.txt, etc) and assign one to each processor. The morphology files must be located in the working directory to be found and imported.

    +

    Finally, users can also import experimental 3D tomography image data, generate a morphology set from the data, and then perform further operations by enabling tomogram import in the parameter file and specifying the name of tomogram dataset. The tomogram metadata is imported from an XML metadata file and then that is used for interpreting a RAW binary data file that contains the image data. The metadata format required by Ising_OPV is defined in XML schema definition file, tomogram_metadata.xsd. Once the tomogram data is loaded, the morphology can be segmented into a number of equally size sub-volumes to form a new morphology set, and then the rest of the analysis is performed. Again, the tomogram dataset files must be located in the working directory to be found and imported.

    +

    For more detailed examples, please see the ./examples/examples.md "Examples" file.

    Simulation Output

    Ising_OPV will create several output files:

    +
    +Tomography data import and analysis workflow. +

    Current Status

    The current release is Ising_OPV . All major planned features for v4.0 are now implemented and have undergone significant testing. However, there may still be bugs that need to be fixed. Please report any bugs or submit feature requests in the Issues section.

    Continuous Integration and Testing Status:

    @@ -134,8 +137,9 @@

    Building and Testing the Executable

    In addition, Ising_OPV requires a C++ 11 compatible compiler. The makefile that accompanies this package is setup to work with the GCC and PGI compilers, but can be easily modified for other compilers.

    Once you have an MPI library installed and have an appropriate compiler, to build Ising_OPV, clone the master branch of Ising_OPV to your machine:

    -
    Then, navigate to the Ising_OPV directory and run `make`.
    Once the normal build is successful, you should test Ising_OPV on your own hardware using the unit and system tests provided before you use the tool.
    Build the testing executable by running `make test`.
    Once the test build is complete, run the two test executables `./test/Ising_OPV_tests.exe` and `./test/Ising_OPV_MPI_tests.exe`.
    Please report any build or testing errors in the [Issues](https://github.com/MikeHeiber/Ising_OPV/issues) section. If you do not have any build or testing errors, then you are ready to go!
    #### Running Simulations
    In most cases, your HPC system will use a job scheduler to manage the computing workload.
    For performing Ising_OPV simulations, it is recommended to submit batch jobs where you will request the resources needed to perform the simulation.
    An example batch script for the SLURM job scheduling system is provided with this package (slurm_script.sh).
    Similar batch scripts can also be written for TORQUE or other job schedulers.
    Regardless of the job scheduler, the program execution command is essentially the same.
    Ising_OPV.exe takes one required input argument, which is the filename of the input parameter file.
    An annotated example parameter file is provided with this package (parameters_default.txt).
    For example, to create 10 morphologies using 10 processors with the default parameters, the command is:
    ```mpiexec -n 10 Ising_OPV.exe parameters_default.tx

    Users can also import morphology sets previously generated by the Ising_OPV tool for further modification and analysis by enabling morphology import in the parameter file and running the simulation with -n set to the size of the morphology set. This will import the morphologies (morphology_0.txt, morphology_1.txt, etc) and assign one to each processor. The morphology files must be located in the working directory to be found and imported.

    -

    Finally, users can also import experimental tomogram image data, generate a morphology set from the data, and then perform further operations by enabling tomogram import in the parameter file and specifying the name of tomogram dataset. The tomogram metadata is imported from an XML metadata file and then that is used for interpreting a RAW binary data file that contains the image data. Once the tomogram data is loaded, the morphology can be segmented into a number of equally size sub-volumes to form a new morphology set, and then the rest of the analysis is performed. Again, the tomogram dataset files must be located in the working directory to be found and imported. Also, the metadata format required by Ising_OPV is defined in XML schema definition file, tomogram_metadata.xsd.

    +
    Then, navigate to the Ising_OPV directory and run `make`.
    Once the normal build is successful, you should test Ising_OPV on your own hardware using the unit and system tests provided before you use the tool.
    Build the testing executable by running `make test`.
    Once the test build is complete, run the two test executables `./test/Ising_OPV_tests.exe` and `./test/Ising_OPV_MPI_tests.exe`.
    Please report any build or testing errors in the [Issues](https://github.com/MikeHeiber/Ising_OPV/issues) section. If you do not have any build or testing errors, then you are ready to go!
    #### Running Simulations
    In most cases, your HPC system will use a job scheduler to manage the computing workload.
    For performing Ising_OPV simulations, it is recommended to submit batch jobs where you will request the resources needed to perform the simulation.
    An example batch script for the SLURM job scheduling system is provided with this package (slurm_script.sh).
    Similar batch scripts can also be written for TORQUE or other job schedulers.
    Regardless of the job scheduler, the program execution command is essentially the same.
    Ising_OPV.exe takes one required input argument, which is the filename of the input parameter file.
    An annotated default parameter file is provided with this package (parameters_default.txt).
    For example, to create 10 morphologies using 10 processors with the default parameters, the command is:
    ```mpiexec -n 10 Ising_OPV.exe parameters_default.tx

    Users can also import morphology sets previously generated by the Ising_OPV tool for further modification and analysis by enabling morphology import in the parameter file and running the simulation with -n set to the size of the morphology set. This will import the morphologies (morphology_0.txt, morphology_1.txt, etc) and assign one to each processor. The morphology files must be located in the working directory to be found and imported.

    +

    Finally, users can also import experimental 3D tomography image data, generate a morphology set from the data, and then perform further operations by enabling tomogram import in the parameter file and specifying the name of tomogram dataset. The tomogram metadata is imported from an XML metadata file and then that is used for interpreting a RAW binary data file that contains the image data. The metadata format required by Ising_OPV is defined in XML schema definition file, tomogram_metadata.xsd. Once the tomogram data is loaded, the morphology can be segmented into a number of equally size sub-volumes to form a new morphology set, and then the rest of the analysis is performed. Again, the tomogram dataset files must be located in the working directory to be found and imported.

    +

    For more detailed examples, please see the ./examples/examples.md "Examples" file.

    Simulation Output

    Ising_OPV will create several output files: