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
+
+
## Current Status
Latest release: [](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 | [](https://coveralls.io/github/MikeHeiber/Ising_OPV?branch=master) |
-| Development | [](https://coveralls.io/github/MikeHeiber/Ising_OPV?branch=development) |
+| Master | [](https://coveralls.io/github/MikeHeiber/Ising_OPV?branch=master) |
+| Development | [](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 @@
+
+
+
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
+
+
+
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:
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:
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.
analysis_summary.txt – This text file will contain statistics about the set of morphologies that has been created.
@@ -155,8 +159,11 @@
Data Analysis
Software API
While this tool is designed to be primarily controlled through the parameter file, API documentation for the Ising_OPV package can be viewed here to enable code developers to utilize Ising_OPV functionality as part of a larger or customized software tool. This software package is written in modern object oriented C++ and can be readily modified by other developers.
Thank you to Dr. Dean 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 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.
Thank you to Prof. Thuc-Quyen Nguyen at the University of California, Santa Barbara for providing access to computing resources that supported development of v3.x. The development of v3.x used the Extreme Science and Engineering Discovery Environment (XSEDE), which is supported by National Science Foundation grant number ACI-1053575.
Thank you to Prof. Vladimir Dyakonov at the University of Würzburg and Prof. Carsten Deibel at Chemnitz University of Technology for providing access to computing resources that supported development of v2.0.
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Contributor Covenant Code of Conduct
+
+
+
Our Pledge
+
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
+
Our Standards
+
Examples of behavior that contributes to creating a positive environment include:
+
+
Using welcoming and inclusive language
+
Being respectful of differing viewpoints and experiences
+
Gracefully accepting constructive criticism
+
Focusing on what is best for the community
+
Showing empathy towards other community members
+
+
Examples of unacceptable behavior by participants include:
+
+
The use of sexualized language or imagery and unwelcome sexual attention or advances
+
Trolling, insulting/derogatory comments, and personal or political attacks
+
Public or private harassment
+
Publishing others' private information, such as a physical or electronic address, without explicit permission
+
Other conduct which could reasonably be considered inappropriate in a professional setting
+
+
Our Responsibilities
+
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
+
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
+
Scope
+
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
+
Enforcement
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at heibe.nosp@m.r@ma.nosp@m.ilaps.nosp@m..org. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
+
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
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
+
+
+
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:
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:
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.
analysis_summary.txt – This text file will contain statistics about the set of morphologies that has been created.
@@ -155,8 +159,11 @@
Data Analysis
Software API
While this tool is designed to be primarily controlled through the parameter file, API documentation for the Ising_OPV package can be viewed here to enable code developers to utilize Ising_OPV functionality as part of a larger or customized software tool. This software package is written in modern object oriented C++ and can be readily modified by other developers.
Thank you to Dr. Dean 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 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.
Thank you to Prof. Thuc-Quyen Nguyen at the University of California, Santa Barbara for providing access to computing resources that supported development of v3.x. The development of v3.x used the Extreme Science and Engineering Discovery Environment (XSEDE), which is supported by National Science Foundation grant number ACI-1053575.
Thank you to Prof. Vladimir Dyakonov at the University of Würzburg and Prof. Carsten Deibel at Chemnitz University of Technology for providing access to computing resources that supported development of v2.0.
Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment
diff --git a/examples/example1/parameters_ex1.txt b/examples/example1/parameters_ex1.txt
new file mode 100644
index 0000000..3bfbd68
--- /dev/null
+++ b/examples/example1/parameters_ex1.txt
@@ -0,0 +1,59 @@
+## Parameters for Ising_OPV v4.0
+---------------------------------------------------------------------------------------------
+## General Parameters
+50 //Length (integer values only) (specify the x-direction size of the lattice)
+50 //Width (integer values only) (specify the y-direction size of the lattice)
+50 //Height (integer values only) (specify the z-direction size of the lattice)
+true //Enable_z_periodic_boundary (true or false) (periodic boundaries in x- and y-directions are enabled by default, but z-direction can also be enabled here)
+0.5 //Mix_fraction (type1 volume fraction)
+0.4 //Interaction_energy1 (code optimized for values from 0.3 to 1.0) (energetic favorability for type1-type1 interactions over type1-type2 interactions in units of kT)
+0.4 //Interaction_energy2 (code optimized for values from 0.3 to 1.0) (energetic favorability for type2-type2 interactions over type1-type2 interactions in units of kT)
+200 //MC_steps (integer values only) (specifies the duration of the phase separation process)
+---------------------------------------------------------------------------------------------
+## Smoothing Options
+true //Enable_smoothing (true or false) (choose whether or not to execute the domain smoothing process)
+0.52 //Smoothing_threshold (0.52 is optimal value determined when domain size >= 5 nm)
+---------------------------------------------------------------------------------------------
+## Rescale Morphology Options
+true //Enable_rescale (true or false) (choose whether or not to rescale the lattice after phase separation is complete; smoothing is performed after rescaling if both are enabled)
+2 //Rescale_factor (positive integer values only)
+false //Enable_shrink (true or false) (choose whether or not to shrink the lattice by 1/rescale factor; smoothing is performed before shrinking if both are enabled)
+---------------------------------------------------------------------------------------------
+## Interfacial Mixing Options
+false //Enable_interfacial_mixing (true or false) (choose whether or not to introduce interfacial mixing after phase separation, smoothing, and rescaling is complete)
+4.0 //Interface_width (nm) (specify the approximate width of the interfacial mixing region)
+0.5 //Interface_conc (type1 volume fraction) (specify the type1 volume fraction in the interfacial mixed region)
+---------------------------------------------------------------------------------------------
+## Analysis Options
+false //Enable_analysis_only (true or false)
+true //Enable_correlation_calc (true or false) (choose whether or not to calculate the domain size using the pair-pair correlation method)
+100000 //N_sampling_max (integer values only) (specify the maximum number of sites to randomly sample for the correlation calculation)
+false //Enable_mix_frac_method (true or false) (choose whether or not to calculate the domain size using the mix fraction method)
+true //Enable_e_method (true or false) (choose whether or not to calculate the domain size using the 1/e method)
+false //Enable_extended_correlation_calc (true of false) (choose whether or not to extend the correlation function calculation to a specified distance)
+10 // Extended_correlation_cutoff_distance (integer values only) (specify the distance to which the extended correlation function should be calculated)
+true //Enable_interfacial_distance_calc (true of false) (choose whether or not to calculate and output the interfacial distance histograms)
+true //Enable_tortuosity_calc (true or false) (choose whether or not to calculate and output the end-to-end tortuosity histograms and calculate the island volume fraction)
+false //Enable_reduced_memory_tortuosity_calc (true or false) (choose whether or not to enable a tortuosity calculation method that takes longer, but uses less memory)
+true //Enable_depth_dependent_calc (true or false) (choose whether or not to enable calculation and output of the depth dependent composition, domain size, and interfacial volume fraction)
+true //Enable_areal_maps_calc (true or false) (choose whether or not to enable calculation and output of areal maps of the composition and tortuosity)
+---------------------------------------------------------------------------------------------
+## Other Options
+false //Enable_checkerboard_start (true or false) (choose whether or not to create a 3D checkerboard morphology) (creates 50:50 blend, works best with even lattice dimensions)
+false //Enable_growth_pref (true or false) (choose whether or not to modify the interaction energies in one direction)
+3 //Growth_direction (specify the direction to modify the interactions, with 1=x,2=y,3=z)
+-0.1 //Additional_interaction (specify the amount that the interaction energy should be modified along the designated direction)
+---------------------------------------------------------------------------------------------
+## Export Morphology Options
+true //Enable_export_compressed_files (true or false) (choose whether or not morphology file output is in compressed format)
+false //Enable_export_cross_section (true or false) (choose whether or not to separately output uncompressed data for the cross-section at the x=0 plane)
+---------------------------------------------------------------------------------------------
+## Import Morphology Options
+false //Enable_import_morphologies (true or false) (choose whether or not to import a previously generated set of morphology files)
+false //Enable_import_tomogram (true or false) (choose whether or not to import a tomogram dataset)
+TOMO_000001 //Tomogram_name (specify the name of the tomogram dataset) (name cannot contain spaces)
+1.0 //Desired_unit_size (nm) (specify the desired lattice unit size to use when importing the tomogram dataset)
+0.0 //Mixed_frac (specify the volume fraction of the mixed phase)
+0.5 //Mixed_conc (specify the type1 volume fraction within the mixed phase)
+16 //N_extracted_segments (specify the number of cuboid segments to extract from the tomogram) (must be 4, 9, 16, 25, 64, 49, etc.)
+1 //N_variants (specify the number of random variants to create from each extracted cuboid segment)
diff --git a/examples/examples.md b/examples/examples.md
new file mode 100644
index 0000000..04ee815
--- /dev/null
+++ b/examples/examples.md
@@ -0,0 +1,170 @@
+Examples
+=========
+
+## 1) Isotropic Phase-Separation
+
+#### Defining the Parameters
+
+For this example, we will be creating a simple phase-separated morphology with two pure phases using the example parameter file, [parameters_ex1.txt](./example1/parameters_ex1.txt), located in the Ising_OPV/examples/example1 directory.
+Let's start by taking a look at the parameters.
+
+First, we set the General Parameters:
+```C++
+## General Parameters
+50 //Length
+50 //Width
+50 //Height
+true //Enable_z_periodic_boundary
+0.5 //Mix_fraction
+0.4 //Interaction_energy1
+0.4 //Interaction_energy2
+200 //MC_steps
+```
+In this section, we set up a 50 x 50 x 50 lattice with periodic boundaries in all directions.
+Periodic boundaries are always enabled in the x- and y- directions, and here we also enable them in the z-direction.
+We then define the composition of the blend by setting the mix volume fraction to 0.5, which is then used to initialize a random blend.
+To control the rate of the phase-separation process we then set the interaction energies to 0.4.
+Large interaction energies will cause slower domain growth, but interaction energies that are too small will not cause enough driving force for phase-separation.
+For simple cases, the interaction energies can should be set to the same value, but they can also be made different so that one could see how this affects the morphology formation.
+Finally, we set the number of Monte Carlo steps to 200 to control the number of site swapping iterations to perform.
+Performing more iterations will allow the domains to grow larger and is the primary handle with which to control the final domain size.
+However, the number of MC steps needed to reach a particular domain size will also depend on the interaction energies used.
+
+Once the phase-separation process is done, there are several options for further modifying the morphology.
+The first of them is smoothing, so let's take a look at the Smoothing Options:
+```C++
+## Smoothing Options
+true //Enable_smoothing
+0.52 //Smoothing_threshold
+```
+Without smoothing, the morphologies will often have rough domain interfaces and some island sites.
+This is especially true when using smaller interaction energies.
+To create idealized model morphologies, one can use the built-in smoothing algorithm.
+The smoothing algorithm detects island sites and sites at rough interfaces by calculating the fraction of neighboring sites that are of the opposite type.
+When the fraction of dissimilar neighbor sites is above the threshold, the site is changed to the opposite type.
+Here we enable smoothing and with the default smoothing threshold of 0.52.
+
+The second option for further modifying the morphology is rescaling, so let's take a look at the Rescale Morphology Options:
+```C++
+## Rescale Morphology Options
+true //Enable_rescale
+2 //Rescale_factor
+false //Enable_shrink
+```
+Using the General Parameters specified, we are creating initial morphologies on a 50 x 50 x 50 lattice.
+An efficient method for creating morphologies with a larger domain size is to rescale the morphology instead of increasing the MC steps.
+Here we enable rescaling with a rescale factor of 2, which will produce morphologies on a 100 x 100 x 100 lattice with domains that are twice as large.
+
+The final option for further modifying the morphology is interfacial mixing, so let's take a look at the Interfacial Mixing Options:
+```C++
+## Interfacial Mixing Options
+false //Enable_interfacial_mixing
+4.0 //Interface_width (nm)
+0.5 //Interface_conc
+```
+The interfacial mixing options allow users to create morphologies with controlled interfacial mixing features.
+When interfacial mixing is enabled, one can set the interfacial width and the composition of final mixed interfacial regions.
+However, in this simple example, we have disabled the interfacial mixing feature.
+
+Now that we have defined the main parameters that control the creation of the morphologies, we must then set the parameters to determine what types of structural analysis will be performed in the Analysis Options section.
+```C++
+## Analysis Options
+false //Enable_analysis_only
+true //Enable_correlation_calc
+100000 //N_sampling_max
+false //Enable_mix_frac_method
+true //Enable_e_method
+false //Enable_extended_correlation_calc
+10 // Extended_correlation_cutoff_distance
+true //Enable_interfacial_distance_calc
+true //Enable_tortuosity_calc
+false //Enable_reduced_memory_tortuosity_calc
+true //Enable_depth_dependent_calc
+true //Enable_areal_maps_calc
+```
+When importing morphologies, one can perform analysis only without modifying the imported morphology set, but here we are creating a new morphology set, so this option is disabled.
+Here, we enable calculation of the normalized compositional radial autocorrelation data, which is used to determine the domain size.
+The calculation is done by averaging the correlation data over a set of randomly sampled sites, and we can define the maximum number of sites to sample.
+Here, we choose a maximum of 100,000 sites, so that only 100,000 out of the total 500,000 sites of each type are sampled for the calculation.
+To determine the domain size, there are two methods to choose from, the mix fraction method and the 1/e method.
+The mix fraction method calculates the domain size by finding where the normalized autocorrelation data first crosses zero.
+With some morphologies, this method can fail because the correlation function does not actually clearly cross zero and instead just converges to zero.
+As a faster alternative, the 1/e method is the preferred method and set as the default.
+The 1/e method calculates the domain size as twice the correlation length, where the correlation length is defined as the distance at which the normalized autocorrelation data first decays to 1/e.
+By default, the autocorrelation data will only be calculated out radially as far as needed to determine the domain size.
+However, if one would like to output and separately analyze more of the autocorrelation data, one can enable the extended correlation calculation and define the autocorrelation cutoff distance.
+Here, we just perform the standard autocorrelation calculation using the 1/e method to determine the domain size.
+
+In addition to domain size calculation options, one can enable or disable several other structural characterization calculations.
+One is calculation and output of the interfacial distance probability histograms.
+The interfacial distance probability histogram gives data for how close any given site is to the interface.
+Another is calculation and output of the end-to-end tortuosity and tortuosity probability histograms.
+This tortuosity data helps characterize how convoluted the charge transport pathways are through the film in the z-direction.
+In cases where users are generating morphologies on large lattices, the default pathfinding algorithm used by the tortuosity calculation may use up all of the available RAM.
+When reaching RAM limitations of the hardware, one can enable a reduced memory algorithm that is significantly slower, but uses much less RAM as a tradeoff.
+Another option is the calculation of several of depth dependent characteristics, including the blend composition, domain size, and interfacial volume fraction.
+Finally, one can enable or disable the calculation of areal maps for several characteristics, including the composition and tortuosity.
+Here, we calculate and output all of the structural analysis metrics.
+
+In addition, let's take a look at some of the more detailed options for modifying the morphology generation process in the Other Options section:
+```C++
+## Other Options
+false //Enable_checkerboard_start
+false //Enable_growth_pref
+3 //Growth_direction
+-0.1 //Additional_interaction
+```
+Instead of starting with a random blend, which is the default setting, one can choose to start with a 3D checkerboard morphology instead.
+One can also enable a directional preference for domain growth by modifying the interaction energy in one direction.
+Here, we are just doing a standard simple isotropic phase-separation simulation, so we disable these options.
+
+Once all of the options for morphology generation and analysis are set, we then specify how to save the generated morphologies in the Export Morphology Options section:
+```C++
+true //Enable_export_compressed_files
+false //Enable_export_cross_section
+```
+Here, we enable the export of the morphologies in a custom compressed format to save disk space.
+This compressed format can be imported later imported into Ising_OPV to further modify the morphologies and can also be directly imported into the [Excimontec](https://github.com/MikeHeiber/Excimontec) kinetic Monte Carlo simulation software.
+However, if this is disabled, the morphologies will be saved in a uncompressed format that will be easier for a human to interpret and load into other software packages.
+Finally, there is also an option to generate data for a cross-sectional image through the middle of the morphology that will be saved in the uncompressed format.
+
+The last section in the parameter file is the Import Morphology Options:
+```C++
+false //Enable_import_morphologies (true or false) (choose whether or not to import a previously generated set of morphology files)
+false //Enable_import_tomogram (true or false) (choose whether or not to import a tomogram dataset)
+TOMO_000001 //Tomogram_name (specify the name of the tomogram dataset) (name cannot contain spaces)
+1.0 //Desired_unit_size (nm) (specify the desired lattice unit size to use when importing the tomogram dataset)
+0.0 //Mixed_frac (specify the volume fraction of the mixed phase)
+0.5 //Mixed_conc (specify the type1 volume fraction within the mixed phase)
+16 //N_extracted_segments (specify the number of cuboid segments to extract from the tomogram) (must be 4, 9, 16, 25, 64, 49, etc.)
+1 //N_variants (specify the number of random variants to create from each extracted cuboid segment)
+```
+This section allows users to import a morphology set previously created by Ising_OPV in order to modify it further or perform additional analysis.
+In addition, this section is where users set the options for importing and analyzing 3D experimental tomography data.
+However, in this simple example, we are only generating a simple morphology set and have disabled all of the import options.
+
+#### Running the Simulation
+
+With all of the parameters set and explained, we now go through executing the simulation.
+Set the working directory to the Ising_OPV/examples/example1 directory and then run the simulation with:
+```
+mpiexec -n 4 ../../Ising_OPV.exe parameters_ex1.txt
+```
+If MPI is properly installed and you were successful in building Ising_OPV, the program should immediately start generating command line output informing you of the status of the simulation as it progresses.
+If you have problems make sure you re-read the build instructions in the README and report any problems you have in the [Issues](https://github.com/MikeHeiber/Ising_OPV/issues) section.
+With the parameters set in the parameters_ex1.txt file, the simulation should only take a few minutes to complete on modern hardware.
+Once completed, the simulation should have created a number of new files in the example1 directory.
+There should be four morphology files with the compressed morphology data (morphology_0.txt, morphology_1.txt, morphology_2.txt, morphology_3.txt) as well at all of the analysis output files.
+A nice quick way to see the characteristics of the morphologies generated is to look at the analysis_summary.txt file.
+This file has CSV formatted average metrics for the entire morphology set as well as the individual metrics calculated for each of the individual morphologies.
+For this simple example, the final morphologies should have a domain size of around 11.9 nm, an anisotropy value near 1.0, and a tortuosity of about 1.08.
+Feel free to explore the other structural analysis data saved in the other files.
+
+#### Concluding Remarks
+
+Well, that's it! You are now ready to play around with making your own parameter files and adjusting the parameter values to reach your desired morphology.
+A good workflow is to play with the parameters and generate small morphology sets on your own machine or on a single interactive node until you finalize a series of parameter files for further testing.
+Once you are ready to generate larger morphology sets, it is recommended to submit batch jobs where you will request the resources needed to perform the simulation.
+Remember that one morphology will be generated for each processor that you request.
+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.
\ No newline at end of file
diff --git a/papers/v4_paper/paper.bib b/papers/v4_paper/paper.bib
new file mode 100644
index 0000000..490a1f7
--- /dev/null
+++ b/papers/v4_paper/paper.bib
@@ -0,0 +1,97 @@
+@article{aboulhassan2017cgf,
+author = {A. Aboulhassan and R. Sicat and D. Baum and O. Wodo and M. Hadwiger},
+title = {Comparative Visual Analysis of Structure-Performance Relations in Complex Bulk-Heterojunction Morphologies},
+journal = {Comput. Graph. Forum},
+volume = {36},
+number = {3},
+pages = {329-339},
+doi = {10.1111/cgf.13191},
+publisher = {Wiley},
+}
+
+@article {heiber2013jpcc,
+author = "Michael C. Heiber and Ali Dhinojwala",
+title = "Estimating the Magnitude of Exciton Delocalization in Regioregular {P3HT}",
+year = "2013",
+journal = "J. Phys. Chem. C",
+volume = "117",
+pages = "21627-21634",
+doi = "10.1021/jp403396v",
+publisher = "American Chemical Society",
+}
+
+@article {heiber2014prapp,
+author = "Michael C. Heiber and Ali Dhinojwala",
+title = "Efficient Generation of Model Bulk Heterojunction Morphologies for Organic Photovoltaic Device Modeling",
+year = "2014",
+journal = "Phys. Rev. Appl.",
+volume = "2",
+pages = "014008",
+doi = "10.1103/PhysRevApplied.2.014008",
+publisher = "American Physical Society",
+}
+
+@article {heiber2015prl,
+author = "Michael C. Heiber and Christoph Baumbach and Vladimir Dyakonov and Carsten Deibel",
+title = "Encounter-Limited Charge-Carrier Recombination in Phase-Separated Organic Semiconductor Blends",
+year = "2015",
+journal = "Phys. Rev. Lett.",
+volume = "114",
+pages = "136602",
+doi = "10.1103/PhysRevLett.114.136602",
+publisher = "American Physical Society",
+}
+
+@article {heiber2016prb,
+author = "Michael C. Heiber and Thuc-Quyen Nguyen and Carsten Deibel",
+title = "Charge carrier concentration dependence of encounter-limited bimolecular recombination in phase-separated organic semiconductor blends",
+year = "2016",
+journal = "Phys. Rev. B",
+volume = "93",
+pages = "205204",
+doi = "10.1103/PhysRevB.93.205204",
+publisher = "American Physical Society",
+}
+
+@article {heiber2017prapp,
+author = "Michael C. Heiber and Klaus Kister and Andreas Baumann and Vladimir Dyakonov and Carsten Deibel and Thuc-Quyen Nguyen",
+title = "Impact of Tortuosity on Charge-Carrier Transport in Organic Bulk Heterojunction Blends",
+year = "2017",
+journal = "Phys. Rev. Appl.",
+volume = "8",
+pages = "054043",
+doi = "10.1103/PhysRevApplied.8.054043",
+publisher = "American Physical Society",
+}
+
+@MISC { heiber2018excimontec,
+url = {https://github.com/MikeHeiber/Excimontec},
+title = {Excimontec},
+YEAR = {2018},
+howpublished = {\url{https://github.com/MikeHeiber/Excimontec}},
+author = {Michael C. Heiber}
+}
+
+@incollection {heiber2019chapter,
+author = "Michael C. Heiber and Alex Wagenpfahl and Carsten Deibel",
+title = "Advances in Modeling the Physics of Disordered Organic Electronic Devices",
+editor = "Oksana Ostroverkhova",
+booktitle = "Handbook of Organic Materials for Electronic and Photonic Devices",
+edition = "2",
+series = "Woodhead Publishing Series in Electronic and Optical Materials",
+publisher = "Woodhead Publishing",
+year = "2019",
+chapter = "10",
+address = "",
+}
+
+@article {lyons2012ees,
+author = "Benjamin P. Lyons and Nigel Clarke and Chris Groves",
+title = "The Relative Importance of Domain Size, Domain Purity and Domain Interfaces to the Performance of Bulk-Heterojunction Organic Photovoltaics",
+year = "2012",
+journal = "Energy Environ. Sci.",
+volume = "5",
+pages = "7657-7663",
+doi = "10.1039/C2EE21327C",
+publisher = "The Royal Society of Chemistry",
+}
\ No newline at end of file
diff --git a/papers/v4_paper/paper.md b/papers/v4_paper/paper.md
new file mode 100644
index 0000000..0f59ebc
--- /dev/null
+++ b/papers/v4_paper/paper.md
@@ -0,0 +1,33 @@
+---
+title: 'Ising_OPV v4.0: Experimental Tomography Data Import, Interpretation, and Analysis'
+tags:
+ - organic photovoltaics
+ - bulk heterojunction morphology
+ - tomography
+ - Ising model
+ - phase separation
+ - image analysis
+authors:
+ - name: Michael C. Heiber
+ orcid: 0000-0002-1567-5663
+ affiliation: "1"
+affiliations:
+ - name: Center for Hierarchical Materials Design (CHiMaD), Northwestern University, Evanston, Illinois 60208, USA
+ index: 1
+date: 6 October 2018
+bibliography: paper.bib
+---
+
+# Summary
+
+Understanding the impact of the complex meso-scale morphology is critical for the development of organic semiconductor materials and devices. This is particularly important in organic photovoltaics (OPVs), where a blend of two or more components phase separates to form a bulk heterojunction (BHJ) structure. To build better structure-property models for organic BHJ photovoltaics, the simple Ising-based morphology model has proven to be a highly useful tool when coupled with kinetic Monte Carlo (KMC) simulations.[@heiber2019chapter] ``Ising_OPV`` was originally designed as an efficient, open-source C++ tool that would enable researchers in the community to have easy access to this morphology model and allow them to create well-controlled morphologies on an HPC cluster for KMC simulations.[@heiber2014prapp] Demonstrating the utility of this tool, the ability to systematically control the domain size allowed a detailed investigation of the charge carrier recombination kinetics in OPVs.[@heiber2015prl, heiber2016prb] The tool can also create controlled interfacial mixing, which can be important for simulating the exciton dissociation dynamics and charge separation yield in OPVs.[@lyons2012ees, @heiber2013jpcc] In addition, the tool was later updated to add new features that allow further structural control and quantification of important morphological features, most importantly the domain tortuosity.[@heiber2017prapp] The tool has also been used as a testbed for developing more advanced 3D image analysis methods.[@aboulhassan2017cgf]
+
+Building on this foundation, v4.0 adds an exciting new feature that allows users to import three-dimensional morphology data sets from experimental techniques such as electron tomography [@vanbavel2009nl, @pfannmoeller2013ees] or atom probe tomography [@proudian2018arXiv] and prepare experimentally-derived morphology sets for KMC simulations using ``Excimontec``.[@heiber2018excimontec] A pictorial representation of the workflow when importing experimental morphology data is shown below. In addition, this update includes a major code overhaul to create a well-organized and well-documented object-oriented software package that is more reliable, testable, and extensible. The code has been updated to use many C++11 features and now includes rigorous unit testing with ``googletest``, integration testing with ``TravisCI``, and API documentation generated using ``Doxygen``. The source code for ``Ising_OPV v4.0`` is archived with Zenodo.[@heiber2018ising4]
+
+-
+
+# Acknowledgments
+
+This work was developed under the 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 Dr. Dean M. DeLongchamp for providing access to NIST's Raritan computing cluster, which was helpful with software development and testing.
+
+# References
diff --git a/papers/v4_paper/tomogram_analysis.png b/papers/v4_paper/tomogram_analysis.png
new file mode 100644
index 0000000..351d0b5
Binary files /dev/null and b/papers/v4_paper/tomogram_analysis.png differ
diff --git a/papers/v4_paper/tomogram_analysis.svg b/papers/v4_paper/tomogram_analysis.svg
new file mode 100644
index 0000000..8ae2d5e
--- /dev/null
+++ b/papers/v4_paper/tomogram_analysis.svg
@@ -0,0 +1,575 @@
+
+
+
+
diff --git a/parameters_default.txt b/parameters_default.txt
index 4c4da3b..61dfe92 100644
--- a/parameters_default.txt
+++ b/parameters_default.txt
@@ -1,4 +1,4 @@
-## Parameters for Ising_OPV v4.0-rc.1
+## Parameters for Ising_OPV v4.0
---------------------------------------------------------------------------------------------
## General Parameters
50 //Length (integer values only) (specify the x-direction size of the lattice)
@@ -22,7 +22,7 @@ false //Enable_shrink (true or false) (choose whether or not to shrink the latti
## Interfacial Mixing Options
false //Enable_interfacial_mixing (true or false) (choose whether or not to introduce interfacial mixing after phase separation, smoothing, and rescaling is complete)
4.0 //Interface_width (nm) (specify the approximate width of the interfacial mixing region)
-0.5 //Interface_conc (donor fraction) (specify the mixed type1 volume fraction in the interfacial region)
+0.5 //Interface_conc (type1 volume fraction) (specify the type1 volume fraction in the interfacial mixed region)
---------------------------------------------------------------------------------------------
## Analysis Options
false //Enable_analysis_only (true or false)
diff --git a/src/Version.cpp b/src/Version.cpp
index c3be626..0f2d3b3 100644
--- a/src/Version.cpp
+++ b/src/Version.cpp
@@ -9,7 +9,7 @@ using namespace std;
namespace Ising_OPV {
- Version Current_version("4.0.0-rc.1");
+ Version Current_version("4.0.0-rc.2");
Version::Version() { }
diff --git a/test/parameters_missing_data.txt b/test/parameters_missing_data.txt
index 2141946..8b1b997 100644
--- a/test/parameters_missing_data.txt
+++ b/test/parameters_missing_data.txt
@@ -1,4 +1,4 @@
-## Parameters for Ising_OPV v4.0-rc.1
+## Parameters for Ising_OPV v4.0
---------------------------------------------------------------------------------------------
## General Parameters
50 //Length (integer values only) (specify the x-direction size of the lattice)
diff --git a/test/parameters_old_format.txt b/test/parameters_old_format.txt
index f287afc..d8e970b 100644
--- a/test/parameters_old_format.txt
+++ b/test/parameters_old_format.txt
@@ -1,4 +1,4 @@
-## Parameters for Ising_OPV v4.0-alpha.3
+## Parameters for Ising_OPV v3.0
-------------------------------
## General Parameters
50 //length (integer values only) (specify the x-direction size of the lattice)