Skip to content

Commit 2bcde71

Browse files
authored
Merge pull request #6 from MikeHeiber/development
Code Cleanup, Documentation, and Testing Update - updated README with more information about installing and using Ising_OPV and details about the morphology analysis data that is generated - performed major reorganization of the code and streamlined the API - updated how users import morphology files or tomogram data so that all options are in the parameter file and not passed as command line arguments - added Parameters class to handle importing parameters from the parameter file and checking the validity of the parameters - added Version class to keep track of the current version and compare parameter files and morphology files from different versions - updated format of output for many of the morphology analysis files to be more consistent - added API documentation for all public functions and class members - added tests for all functional features and many cases of users attempting to use invalid parameters or input data - updated format of the parameter file - corrected bugs in the calculation of histograms for the morphology analysis - added and implemented new utility MPI functions to make it easier to gather result values from each processor - simplified tomogram analysis options and now allow users to specify the mixed phase volume fraction - updated treatment of imported morphologies; when importing morphologies and then modifying them, the final morphologies will overwrite the morphologies in the current working directory
2 parents 06799b0 + e833ae0 commit 2bcde71

File tree

195 files changed

+41446
-10682
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

195 files changed

+41446
-10682
lines changed

.travis.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ compiler:
1313
- gcc
1414

1515
env:
16-
- OPTIONS="GCC_VERSION=5 && MPI=openmpi && TARGET=test_coverage"
16+
- OPTIONS="GCC_VERSION=4.7 && MPI=openmpi && TARGET=test_coverage"
1717
- OPTIONS="GCC_VERSION=4.7 && MPI=mpich2 && TARGET=test"
1818
- OPTIONS="GCC_VERSION=4.7 && MPI=openmpi && TARGET=test"
1919
- OPTIONS="GCC_VERSION=4.8 && MPI=mpich2 && TARGET=test"
@@ -42,9 +42,6 @@ before_install:
4242
- if [[ "$TARGET" = test_coverage ]]; then pip install --user cpp-coveralls; fi
4343

4444
script:
45-
- make -j10 $TARGET
46-
- cd test
47-
- travis_wait ./Ising_OPV_tests.exe
48-
- cd ..
45+
- make -j10 $TARGET && travis_wait ./test/Ising_OPV_tests.exe && travis_wait mpiexec -n 4 ./test/Ising_OPV_MPI_tests.exe
4946
- if [[ "$TARGET" = test_coverage ]]; then coveralls --include src --exclude "googletest/*" --gcov-options '\-lp'; fi
5047
- if [[ "$TARGET" = test ]]; then make -j10 && mpiexec -n 4 ./Ising_OPV.exe parameters_default.txt; fi

README.md

Lines changed: 54 additions & 41 deletions
Large diffs are not rendered by default.

docs/Thumbs.db

10 KB
Binary file not shown.

docs/_lattice_8cpp.html

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<tr style="height: 56px;">
3131
<td id="projectalign" style="padding-left: 0.5em;">
3232
<div id="projectname">Ising_OPV
33-
&#160;<span id="projectnumber">v4.0-beta.1</span>
33+
&#160;<span id="projectnumber">v4.0-beta.2</span>
3434
</div>
3535
<div id="projectbrief">Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment</div>
3636
</td>
@@ -87,12 +87,20 @@
8787
</div>
8888

8989
<div class="header">
90+
<div class="summary">
91+
<a href="#namespaces">Namespaces</a> </div>
9092
<div class="headertitle">
9193
<div class="title">Lattice.cpp File Reference</div> </div>
9294
</div><!--header-->
9395
<div class="contents">
9496
<div class="textblock"><code>#include &quot;<a class="el" href="_lattice_8h_source.html">Lattice.h</a>&quot;</code><br />
95-
</div></div><!-- contents -->
97+
</div><table class="memberdecls">
98+
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
99+
Namespaces</h2></td></tr>
100+
<tr class="memitem:namespace_ising___o_p_v"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_ising___o_p_v.html">Ising_OPV</a></td></tr>
101+
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
102+
</table>
103+
</div><!-- contents -->
96104
</div><!-- doc-content -->
97105
<!-- start footer part -->
98106
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->

docs/_lattice_8h.html

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<tr style="height: 56px;">
3131
<td id="projectalign" style="padding-left: 0.5em;">
3232
<div id="projectname">Ising_OPV
33-
&#160;<span id="projectnumber">v4.0-beta.1</span>
33+
&#160;<span id="projectnumber">v4.0-beta.2</span>
3434
</div>
3535
<div id="projectbrief">Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment</div>
3636
</td>
@@ -88,25 +88,31 @@
8888

8989
<div class="header">
9090
<div class="summary">
91-
<a href="#nested-classes">Classes</a> </div>
91+
<a href="#nested-classes">Classes</a> &#124;
92+
<a href="#namespaces">Namespaces</a> </div>
9293
<div class="headertitle">
9394
<div class="title">Lattice.h File Reference</div> </div>
9495
</div><!--header-->
9596
<div class="contents">
9697
<div class="textblock"><code>#include &quot;<a class="el" href="_utils_8h_source.html">Utils.h</a>&quot;</code><br />
98+
<code>#include &lt;ctime&gt;</code><br />
9799
<code>#include &lt;functional&gt;</code><br />
100+
<code>#include &lt;stdexcept&gt;</code><br />
98101
</div>
99102
<p><a href="_lattice_8h_source.html">Go to the source code of this file.</a></p>
100103
<table class="memberdecls">
101104
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
102105
Classes</h2></td></tr>
103-
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_parameters___lattice.html">Parameters_Lattice</a></td></tr>
104-
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This struct contains all of the main input parameters needed by the <a class="el" href="class_lattice.html" title="This class contains the properties of a three-dimensional lattice and the functions needed to interac...">Lattice</a> class. <a href="struct_parameters___lattice.html#details">More...</a><br /></td></tr>
106+
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ising___o_p_v_1_1_lattice.html">Ising_OPV::Lattice</a></td></tr>
107+
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class contains the properties of a three-dimensional lattice and the functions needed to interact with it. <a href="class_ising___o_p_v_1_1_lattice.html#details">More...</a><br /></td></tr>
105108
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
106-
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_site.html">Site</a></td></tr>
109+
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ising___o_p_v_1_1_lattice_1_1_lattice___params.html">Ising_OPV::Lattice::Lattice_Params</a></td></tr>
110+
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This struct contains all of the main input parameters needed by the <a class="el" href="class_ising___o_p_v_1_1_lattice.html" title="This class contains the properties of a three-dimensional lattice and the functions needed to interac...">Lattice</a> class. <a href="struct_ising___o_p_v_1_1_lattice_1_1_lattice___params.html#details">More...</a><br /></td></tr>
107111
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
108-
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lattice.html">Lattice</a></td></tr>
109-
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class contains the properties of a three-dimensional lattice and the functions needed to interact with it. <a href="class_lattice.html#details">More...</a><br /></td></tr>
112+
</table><table class="memberdecls">
113+
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
114+
Namespaces</h2></td></tr>
115+
<tr class="memitem:namespace_ising___o_p_v"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_ising___o_p_v.html">Ising_OPV</a></td></tr>
110116
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
111117
</table>
112118
</div><!-- contents -->

docs/_lattice_8h_source.html

Lines changed: 39 additions & 41 deletions
Large diffs are not rendered by default.

docs/_morphology_8cpp.html

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<tr style="height: 56px;">
3131
<td id="projectalign" style="padding-left: 0.5em;">
3232
<div id="projectname">Ising_OPV
33-
&#160;<span id="projectnumber">v4.0-beta.1</span>
33+
&#160;<span id="projectnumber">v4.0-beta.2</span>
3434
</div>
3535
<div id="projectbrief">Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment</div>
3636
</td>
@@ -87,12 +87,20 @@
8787
</div>
8888

8989
<div class="header">
90+
<div class="summary">
91+
<a href="#namespaces">Namespaces</a> </div>
9092
<div class="headertitle">
9193
<div class="title">Morphology.cpp File Reference</div> </div>
9294
</div><!--header-->
9395
<div class="contents">
9496
<div class="textblock"><code>#include &quot;<a class="el" href="_morphology_8h_source.html">Morphology.h</a>&quot;</code><br />
95-
</div></div><!-- contents -->
97+
</div><table class="memberdecls">
98+
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
99+
Namespaces</h2></td></tr>
100+
<tr class="memitem:namespace_ising___o_p_v"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_ising___o_p_v.html">Ising_OPV</a></td></tr>
101+
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
102+
</table>
103+
</div><!-- contents -->
96104
</div><!-- doc-content -->
97105
<!-- start footer part -->
98106
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->

docs/_morphology_8h.html

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<tr style="height: 56px;">
3131
<td id="projectalign" style="padding-left: 0.5em;">
3232
<div id="projectname">Ising_OPV
33-
&#160;<span id="projectnumber">v4.0-beta.1</span>
33+
&#160;<span id="projectnumber">v4.0-beta.2</span>
3434
</div>
3535
<div id="projectbrief">Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment</div>
3636
</td>
@@ -88,34 +88,38 @@
8888

8989
<div class="header">
9090
<div class="summary">
91-
<a href="#nested-classes">Classes</a> </div>
91+
<a href="#nested-classes">Classes</a> &#124;
92+
<a href="#namespaces">Namespaces</a> </div>
9293
<div class="headertitle">
9394
<div class="title">Morphology.h File Reference</div> </div>
9495
</div><!--header-->
9596
<div class="contents">
9697
<div class="textblock"><code>#include &quot;<a class="el" href="_lattice_8h_source.html">Lattice.h</a>&quot;</code><br />
98+
<code>#include &quot;<a class="el" href="_parameters_8h_source.html">Parameters.h</a>&quot;</code><br />
9799
<code>#include &quot;<a class="el" href="_utils_8h_source.html">Utils.h</a>&quot;</code><br />
100+
<code>#include &quot;<a class="el" href="_version_8h_source.html">Version.h</a>&quot;</code><br />
98101
<code>#include &quot;tinyxml2/tinyxml2.h&quot;</code><br />
99102
<code>#include &lt;algorithm&gt;</code><br />
103+
<code>#include &lt;array&gt;</code><br />
104+
<code>#include &lt;cstdio&gt;</code><br />
100105
<code>#include &lt;ctime&gt;</code><br />
101106
<code>#include &lt;fstream&gt;</code><br />
102107
<code>#include &lt;functional&gt;</code><br />
103108
<code>#include &lt;numeric&gt;</code><br />
104109
<code>#include &lt;sstream&gt;</code><br />
110+
<code>#include &lt;stdexcept&gt;</code><br />
105111
</div>
106112
<p><a href="_morphology_8h_source.html">Go to the source code of this file.</a></p>
107113
<table class="memberdecls">
108114
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
109115
Classes</h2></td></tr>
110-
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_neighbor_counts.html">NeighborCounts</a></td></tr>
116+
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ising___o_p_v_1_1_morphology.html">Ising_OPV::Morphology</a></td></tr>
117+
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class contains a lattice representation of a materials blend with the ability to simulate phase separation and perform a variety of structural analyses. <a href="class_ising___o_p_v_1_1_morphology.html#details">More...</a><br /></td></tr>
111118
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
112-
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_neighbor_info.html">NeighborInfo</a></td></tr>
113-
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
114-
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_correlation_calc_params.html">CorrelationCalcParams</a></td></tr>
115-
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
116-
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_tomogram_import_params.html">TomogramImportParams</a></td></tr>
117-
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
118-
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_morphology.html">Morphology</a></td></tr>
119+
</table><table class="memberdecls">
120+
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
121+
Namespaces</h2></td></tr>
122+
<tr class="memitem:namespace_ising___o_p_v"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_ising___o_p_v.html">Ising_OPV</a></td></tr>
119123
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
120124
</table>
121125
</div><!-- contents -->

docs/_morphology_8h_source.html

Lines changed: 50 additions & 68 deletions
Large diffs are not rendered by default.

docs/struct_neighbor_counts-members.html renamed to docs/_parameters_8cpp.html

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
66
<meta name="generator" content="Doxygen 1.8.14"/>
77
<meta name="viewport" content="width=device-width, initial-scale=1"/>
8-
<title>Ising_OPV: Member List</title>
8+
<title>Ising_OPV: src/Parameters.cpp File Reference</title>
99
<link href="tabs.css" rel="stylesheet" type="text/css"/>
1010
<script type="text/javascript" src="jquery.js"></script>
1111
<script type="text/javascript" src="dynsections.js"></script>
@@ -30,7 +30,7 @@
3030
<tr style="height: 56px;">
3131
<td id="projectalign" style="padding-left: 0.5em;">
3232
<div id="projectname">Ising_OPV
33-
&#160;<span id="projectnumber">v4.0-beta.1</span>
33+
&#160;<span id="projectnumber">v4.0-beta.2</span>
3434
</div>
3535
<div id="projectbrief">Generates and analyzes model bulk heterojunction morphologies in a parallel computing environment</div>
3636
</td>
@@ -68,7 +68,7 @@
6868
</div>
6969
<script type="text/javascript">
7070
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
71-
$(document).ready(function(){initNavTree('struct_neighbor_counts.html','');});
71+
$(document).ready(function(){initNavTree('_parameters_8cpp.html','');});
7272
/* @license-end */
7373
</script>
7474
<div id="doc-content">
@@ -87,22 +87,25 @@
8787
</div>
8888

8989
<div class="header">
90+
<div class="summary">
91+
<a href="#namespaces">Namespaces</a> </div>
9092
<div class="headertitle">
91-
<div class="title">NeighborCounts Member List</div> </div>
93+
<div class="title">Parameters.cpp File Reference</div> </div>
9294
</div><!--header-->
9395
<div class="contents">
94-
95-
<p>This is the complete list of members for <a class="el" href="struct_neighbor_counts.html">NeighborCounts</a>, including all inherited members.</p>
96-
<table class="directory">
97-
<tr class="even"><td class="entry"><a class="el" href="struct_neighbor_counts.html#a2a9d14a368441fffcbc50843a79cd502">operator==</a>(const NeighborCounts &amp;a) const</td><td class="entry"><a class="el" href="struct_neighbor_counts.html">NeighborCounts</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
98-
<tr><td class="entry"><a class="el" href="struct_neighbor_counts.html#af38c4ec1e2e9829b80e89290908533f9">sum1</a></td><td class="entry"><a class="el" href="struct_neighbor_counts.html">NeighborCounts</a></td><td class="entry"></td></tr>
99-
<tr class="even"><td class="entry"><a class="el" href="struct_neighbor_counts.html#ac82232084a715a172d4f2921b155b72b">sum2</a></td><td class="entry"><a class="el" href="struct_neighbor_counts.html">NeighborCounts</a></td><td class="entry"></td></tr>
100-
<tr><td class="entry"><a class="el" href="struct_neighbor_counts.html#a58027b0e46c2fa765783e6768b66e80a">sum3</a></td><td class="entry"><a class="el" href="struct_neighbor_counts.html">NeighborCounts</a></td><td class="entry"></td></tr>
101-
</table></div><!-- contents -->
96+
<div class="textblock"><code>#include &quot;<a class="el" href="_parameters_8h_source.html">Parameters.h</a>&quot;</code><br />
97+
</div><table class="memberdecls">
98+
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
99+
Namespaces</h2></td></tr>
100+
<tr class="memitem:namespace_ising___o_p_v"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_ising___o_p_v.html">Ising_OPV</a></td></tr>
101+
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
102+
</table>
103+
</div><!-- contents -->
102104
</div><!-- doc-content -->
103105
<!-- start footer part -->
104106
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
105107
<ul>
108+
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="_parameters_8cpp.html">Parameters.cpp</a></li>
106109
<li class="footer">Generated by
107110
<a href="http://www.doxygen.org/index.html">
108111
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>

0 commit comments

Comments
 (0)