Skip to content

Commit

Permalink
Merge pull request #4 from MikeHeiber/development
Browse files Browse the repository at this point in the history
Development Update 3 to be included with v4.0-alpha.1
  • Loading branch information
MikeHeiber authored Sep 19, 2017
2 parents 8654326 + 71b020e commit db4e568
Show file tree
Hide file tree
Showing 7 changed files with 388 additions and 174 deletions.
368 changes: 235 additions & 133 deletions Morphology.cpp

Large diffs are not rendered by default.

30 changes: 20 additions & 10 deletions Morphology.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,15 @@ struct NeighborInfo{
char total3;
};

struct CorrelationCalcParams {
int N_sampling_max;
bool Enable_mix_frac_method;
bool Enable_e_method;
bool Enable_extended_correlation_calc;
int Correlation_cutoff_distance;
};

struct TomogramImportParams {
// Tomogram Import Options
bool Enable_cutoff_analysis;
int Mixed_greyscale_width;
double Mixed_conc;
Expand All @@ -54,10 +61,10 @@ class Morphology {
Morphology(const Lattice& input_lattice, const int id);
virtual ~Morphology();
bool calculateAnisotropies(const int N_sampling_max);
void calculateCorrelationDistances(const bool enable_extended_calc, const int N_sampling_max);
void calculateCorrelationDistances(const CorrelationCalcParams& parameters);
void calculateDepthDependentData(const CorrelationCalcParams& correlation_params);
double calculateInterfacialAreaVolumeRatio() const;
bool calculateInterfacialDistance();
//bool calculateInterfacialDistanceOld();
double calculateInterfacialVolumeFraction() const;
void calculateMixFractions();
bool calculateTortuosity(const bool enable_reduced_memory);
Expand All @@ -68,6 +75,8 @@ class Morphology {
void executeMixing(const double width, const double interfacial_conc);
void executeSmoothing(const double smoothing_threshold, const int rescale_factor);
std::vector<double> getCorrelationData(const char site_type) const;
std::vector<double> getDepthCompositionData(const char site_type) const;
std::vector<double> getDepthDomainSizeData(const char site_type) const;
double getDomainSize(const char site_type) const;
double getDomainAnisotropy(const char site_type) const;
int getHeight() const;
Expand Down Expand Up @@ -108,7 +117,7 @@ class Morphology {
};
// properties
int ID;
std::vector<double> Mix_fractions; // Fraction of each component to total
std::vector<double> Mix_fractions; // Volume fraction of each component to total
bool Enable_third_neighbor_interaction;
Lattice lattice;
std::vector<char> Site_types;
Expand All @@ -117,13 +126,13 @@ class Morphology {
std::vector<std::vector<float>> Tortuosity_data;
std::vector<std::vector<double>> InterfacialHistogram_data;
std::vector<std::vector<double>> TortuosityHistogram_data;
std::vector<bool> Domain_size_updated;
std::vector<std::vector<double>> Depth_composition_data;
std::vector<std::vector<double>> Depth_domain_size_data;
std::vector<bool> Domain_anisotropy_updated;
std::vector<double> Domain_size;
std::vector<double> Domain_anisotropy;
std::vector<double> Domain_sizes;
std::vector<double> Domain_anisotropies;
std::vector<int> Island_volume;
std::vector<long int> Interfacial_sites;
std::vector<std::vector<long int>> Correlation_sites_data;
std::vector<NeighborCounts> Neighbor_counts;
std::vector<NeighborInfo> Neighbor_info;
NeighborCounts Temp_counts1;
Expand All @@ -132,8 +141,8 @@ class Morphology {
// functions
void addSiteType(const char site_type);
double calculateAdditionalEnergyChange(const long int site_index_main, const long int site_index_neighbor,const int growth_direction,const double additional_interaction) const;
bool calculateAnisotropy(const char site_type,const int cutoff_distance,const int N_sampling_max);
bool calculateCorrelationDistance(const char site_type, const int cutoff_distance, const bool enable_extended_calc, const int N_sampling_max);
bool calculateAnisotropy(const std::vector<long int>& correlation_sites, const char site_type,const int cutoff_distance);
double calculateCorrelationDistance(const std::vector<long int>& correlation_sites, std::vector<double>& correlation_data, const char site_type, const int cutoff_distance, const CorrelationCalcParams& params);
double calculateDissimilarFraction(const Coords& coords, const int rescale_factor) const;
double calculateEnergyChangeSimple(const long int site_index1, const long int site_index2, const double interaction_energy1, const double interaction_energy2);
double calculateEnergyChange(const Coords& coords1, const Coords& coords2,const double interaction_energy1,const double interaction_energy2) const;
Expand All @@ -142,6 +151,7 @@ class Morphology {
bool calculatePathDistances_ReducedMemory(std::vector<float>& path_distances);
void createNode(Node& node,const Coords& coords);
void getSiteSampling(std::vector<long int>& sites, const char site_type, const int N_sites);
void getSiteSamplingZ(std::vector<long int>& sites, const char site_type, const int N_sites, const int z);
int getSiteTypeIndex(const char site_type) const;
void initializeNeighborInfo();
bool isNearInterface(const Coords& coords, const double distance) const;
Expand Down
8 changes: 5 additions & 3 deletions Utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ namespace Utils {

vector<pair<double, double>> calculateProbabilityHist(const vector<double>& data, int num_bins) {
// Determine data range
double min_val, max_val;
double min_val = 0;
double max_val = 0;
auto min_it = min_element(data.begin(), data.end());
if (min_it != data.end()) {
min_val = *min_it;
Expand All @@ -46,7 +47,8 @@ namespace Utils {

vector<pair<double, double>> calculateProbabilityHist(const vector<double>& data, double bin_size) {
// Determine data range
double min_val, max_val;
double min_val = 0;
double max_val = 0;
auto min_it = min_element(data.begin(), data.end());
if (min_it != data.end()) {
min_val = *min_it;
Expand All @@ -73,7 +75,7 @@ namespace Utils {

vector<pair<double, double>> calculateProbabilityHist(const vector<double>& data, const double bin_size, const int num_bins) {
// Determine number of bins
double min_val;
double min_val = 0;
auto min_it = min_element(data.begin(), data.end());
if (min_it != data.end()) {
min_val = *min_it;
Expand Down
8 changes: 4 additions & 4 deletions Utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#include <iostream>
#include <memory>
#include <mpi.h>
#include <fstream>
#include <random>
#include <set>
#include <string>
Expand Down Expand Up @@ -187,8 +188,7 @@ namespace Utils {

template<typename T>
T array_median(const T data[], const int array_size) {
T element;
std::vector<T> data_vect(array_size, element);
std::vector<T> data_vect(array_size);
for (int i = 0; i<array_size; i++) {
data_vect[i] = data[i];
}
Expand Down Expand Up @@ -244,7 +244,7 @@ namespace Utils {
//! \param filename is the input file name.
template<typename T>
void outputVectorToFile(std::vector<T>& vec, std::string filename) {
ofstream outfile;
std::ofstream outfile;
outfile.open(filename);
for (int i = 0; i < (int)vec.size(); i++) {
outfile << vec[i] << "\n";
Expand All @@ -258,7 +258,7 @@ namespace Utils {
//! \param filename is the input file name.
template<typename T>
void outputVectorToFile(std::vector<std::pair<T,T>>& vec, std::string filename) {
ofstream outfile;
std::ofstream outfile;
outfile.open(filename);
for (int i = 0; i < (int)vec.size(); i++) {
outfile << vec[i].first << "," << vec[i].second << "\n";
Expand Down
Loading

0 comments on commit db4e568

Please sign in to comment.