Skip to content
Snippets Groups Projects
Commit d095ab46 authored by AlenaKaranchuk's avatar AlenaKaranchuk
Browse files

fixed averaging of fluctuations and stresses

parent d67b58d3
No related branches found
No related tags found
No related merge requests found
This diff is collapsed.
......@@ -11,41 +11,60 @@ class Averaging
public:
void createGeoMatrix(std::string dataNameG);
void writeGeoMatrixToImageFile(std::string output);
void createMQMatrix(std::string dataNameMQ);
void writeMatrixToImageFile(std::string output, std::array<CbArray3D<double>, 4> matrix);
void writeMqMatrixToImageFile(std::string output);
void writeVaMatrixToImageFile(std::string output);
void writeVaSumMatrixToImageFile(std::string output);
void writeMeanMatrixToImageFile(std::string output);
void volumeAveragingWithMPI(double l_real);
void readGeoMatrix(std::string dataNameG);
void writeGeoMatrixToBinaryFiles(std::string fname);
void readGeoMatrixFromBinaryFiles(std::string fname);
void createMQMatrix(std::string dataNameMQ);
void writeMqMatrixToBinaryFiles(std::string fname, int timeStep);
void readMqMatrixFromBinaryFiles(std::string fname, int timeStep);
void writeMqMatrixToImageFile(std::string output);
void writeVaMatrixToImageFile(std::string output);
void writeVaSumMatrixToImageFile(std::string output);
void writeMeanMatrixToImageFile(std::string output);
void writeMatrixToImageFile(std::string output, std::array<CbArray3D<double>, 4> matrix);
void initVolumeAveragingValues();
void initVolumeAveragingFluctStressValues();
void initMeanVolumeAveragingValues();
void initFluctuationsofVolumeAveragingValues();
void initMeanOfFluctuations();
void initStresses();
void initSumOfStresses();
void initMeanOfStresses();
void initPlanarAveragingMQ();
void initMeanVolumeAveragingFluctStressValues();
void volumeAveragingWithMPI(double l_real);
void volumeAveragingFluctStressWithMPI(double l_real);
void meanOfVolumeAveragingValues(int numberOfTimeSteps);
void sumOfVolumeAveragingValues();
void writeVolumeAveragingValuesToBinaryFiles(std::string ffname, int timeStep);
void meanOfVolumeAveragingValues(int numberOfTimeSteps);
void readVolumeAveragingValuesFromBinaryFiles(std::string fname, int timeStep);
void writeMeanVolumeAveragingValuesToBinaryFiles(std::string ffname);
void fluctuationsOfVolumeAveragingValue();
void sumOfFluctuations();
void initSumOfFluctuations();
void writeFluctuationsToBinaryFiles(std::string fname, int timeStep);
void writeStressesToBinaryFiles(std::string fname, int timeStep);
void meanOfFluctuations(int numberOfTimeSteps);
void sumOfStresses();
void meanOfStresses(int numberOfTimeSteps);
void planarAveragingMQ();
void readMeanVolumeAveragingValuesFromBinaryFiles(std::string fname);
void initFluctuations();
void initMeanOfVaFluctuations();
void initSumOfVaFluctuations();
void fluctuationsStress();
void meanOfVaFluctuations(int numberOfTimeSteps);
void sumOfVaFluctuations();
void writeVaFluctuationsToBinaryFiles(std::string fname, int timeStep);
void readVaFluctuationsFromBinaryFiles(std::string fname, int timeStep);
void writeMeanVaFluctuationsToBinaryFiles(std::string ffname);
void readMeanVaFluctuationsFromBinaryFiles(std::string ffname);
void writeMeanOfVaFluctuationsToImageFile(std::string ffname);
void writeFluctuationsToImageFile(std::string ffname);
void writeVaFluctuationsToImageFile(std::string ffname);
void initStresses();
void initSumOfVaStresses();
void initMeanOfVaStresses();
void sumOfVaStresses();
void meanOfVaStresses(int numberOfTimeSteps);
void writeVaStressesToBinaryFiles(std::string fname, int timeStep);
void readVaStressesFromBinaryFiles(std::string fname, int timeStep);
void writeMeanVaStressesToBinaryFiles(std::string ffname);
void readMeanVaStressesFromBinaryFiles(std::string ffname);
void initPlanarAveraging();
void planarAveraging();
void writeToCSV(std::string path, double origin, double deltax);
void readVolumeAveragingValuesFromBinaryFiles(std::string fname, int timeStep);
std::array<int, 3> getDimensions() const { return dimensions; }
void setDimensions(std::array<int, 3> val) { dimensions = val; }
......@@ -75,82 +94,85 @@ private:
CbArray3D<double> vzMatrix;
CbArray3D<double> prMatrix;
CbArray3D<double> sumVaVxMatrix;
CbArray3D<double> sumVaVyMatrix;
CbArray3D<double> sumVaVzMatrix;
CbArray3D<double> sumVaPrMatrix;
CbArray3D<double> vaVxMatrix;
CbArray3D<double> vaVyMatrix;
CbArray3D<double> vaVzMatrix;
CbArray3D<double> vaPrMatrix;
CbArray3D<double> meanVxMatrix;
CbArray3D<double> meanVyMatrix;
CbArray3D<double> meanVzMatrix;
CbArray3D<double> meanPrMatrix;
CbArray3D<double> sumVaVxMatrix;
CbArray3D<double> sumVaVyMatrix;
CbArray3D<double> sumVaVzMatrix;
CbArray3D<double> sumVaPrMatrix;
CbArray3D<double> meanVaVxMatrix;
CbArray3D<double> meanVaVyMatrix;
CbArray3D<double> meanVaVzMatrix;
CbArray3D<double> meanVaPrMatrix;
//----------------------------------------
CbArray3D<double> FlucVxMatrix;
CbArray3D<double> FlucVyMatrix;
CbArray3D<double> FlucVzMatrix;
CbArray3D<double> FlucPrMatrix;
CbArray3D<double> vaFlucVxMatrix;
CbArray3D<double> vaFlucVyMatrix;
CbArray3D<double> vaFlucVzMatrix;
CbArray3D<double> vaFlucPrMatrix;
CbArray3D<double> sumVaFlucVx;
CbArray3D<double> sumVaFlucVy;
CbArray3D<double> sumVaFlucVz;
CbArray3D<double> sumVaFlucPr;
CbArray3D<double> meanVaFlucVx;
CbArray3D<double> meanVaFlucVy;
CbArray3D<double> meanVaFlucVz;
CbArray3D<double> meanVaFlucPr;
//----------------------------------------
CbArray3D<double> StressXX;
CbArray3D<double> StressYY;
CbArray3D<double> StressZZ;
CbArray3D<double> StressXY;
CbArray3D<double> StressXZ;
CbArray3D<double> StressYX;
CbArray3D<double> StressYY;
CbArray3D<double> StressYZ;
CbArray3D<double> StressZX;
CbArray3D<double> StressZY;
CbArray3D<double> StressZZ;
CbArray3D<double> sumFlucVx;
CbArray3D<double> sumFlucVy;
CbArray3D<double> sumFlucVz;
CbArray3D<double> sumFlucPr;
CbArray3D<double> meanFlucVx;
CbArray3D<double> meanFlucVy;
CbArray3D<double> meanFlucVz;
CbArray3D<double> meanFlucPr;
CbArray3D<double> SumStressXX;
CbArray3D<double> SumStressXY;
CbArray3D<double> SumStressXZ;
CbArray3D<double> SumStressYX;
CbArray3D<double> SumStressYY;
CbArray3D<double> SumStressYZ;
CbArray3D<double> SumStressZX;
CbArray3D<double> SumStressZY;
CbArray3D<double> SumStressZZ;
CbArray3D<double> meanStressXX;
CbArray3D<double> meanStressXY;
CbArray3D<double> meanStressXZ;
CbArray3D<double> meanStressYX;
CbArray3D<double> meanStressYY;
CbArray3D<double> meanStressYZ;
CbArray3D<double> meanStressZX;
CbArray3D<double> meanStressZY;
CbArray3D<double> meanStressZZ;
CbArray3D<double> vaStressXX;
CbArray3D<double> vaStressYY;
CbArray3D<double> vaStressZZ;
CbArray3D<double> vaStressXY;
CbArray3D<double> vaStressXZ;
CbArray3D<double> vaStressYZ;
CbArray3D<double> SumVaStressXX;
CbArray3D<double> SumVaStressYY;
CbArray3D<double> SumVaStressZZ;
CbArray3D<double> SumVaStressXY;
CbArray3D<double> SumVaStressXZ;
CbArray3D<double> SumVaStressYZ;
CbArray3D<double> meanVaStressXX;
CbArray3D<double> meanVaStressYY;
CbArray3D<double> meanVaStressZZ;
CbArray3D<double> meanVaStressXY;
CbArray3D<double> meanVaStressXZ;
CbArray3D<double> meanVaStressYZ;
//----------------------------------------
std::vector<double> PlanarVx;
std::vector<double> PlanarVy;
std::vector<double> PlanarVz;
std::vector<double> PlanarPr;
std::vector<double> PlanarFlucVx;
std::vector<double> PlanarFlucVy;
std::vector<double> PlanarFlucVz;
std::vector<double> PlanarFlucPr;
std::vector<double> PlanarStressXX;
std::vector<double> PlanarStressYY;
std::vector<double> PlanarStressZZ;
std::vector<double> PlanarStressXY;
std::vector<double> PlanarStressXZ;
std::vector<double> PlanarStressYX;
std::vector<double> PlanarStressYY;
std::vector<double> PlanarStressYZ;
std::vector<double> PlanarStressZX;
std::vector<double> PlanarStressZY;
std::vector<double> PlanarStressZZ;
};
//////////////////////////////////////////////////////////////////////////
......
......@@ -6,14 +6,14 @@
#include <vtkXMLPPolyDataReader.h>
#include <vtkXMLStructuredGridReader.h>
#include <vtkXMLRectilinearGridReader.h>
#include <vtkXMLHyperOctreeReader.h>
//#include <vtkXMLHyperOctreeReader.h>
#include <vtkXMLCompositeDataReader.h>
#include <vtkXMLStructuredGridReader.h>
#include <vtkXMLImageDataReader.h>
#include <vtkDataSetReader.h>
#include <vtkUnstructuredGrid.h>
#include <vtkRectilinearGrid.h>
#include <vtkHyperOctree.h>
//#include <vtkHyperOctree.h>
#include <vtkImageData.h>
#include <vtkPolyData.h>
#include <vtkStructuredGrid.h>
......@@ -48,10 +48,10 @@ vtkDataSet* ReadDataSet(std::string fileName)
{
return ReadAnXMLFile<vtkXMLImageDataReader> (fileName);
}
else if (extension == ".vto")
{
return ReadAnXMLFile<vtkXMLHyperOctreeReader> (fileName);
}
//else if (extension == ".vto")
//{
// return ReadAnXMLFile<vtkXMLHyperOctreeReader> (fileName);
//}
else if (extension == ".vtk")
{
return ReadAnXMLFile<vtkDataSetReader> (fileName);
......
......@@ -33,8 +33,8 @@ int main(int argc, char* argv[])
//Bombadil
string pathIn = "d:/temp/BreugemChannelAnisotrop2";
string pathOut = "d:/temp/BreugemChannelAnisotrop2";
string pathIn = "d:/temp/BreugemChannelAnisotrop";
string pathOut = "d:/temp/BreugemChannelAnisotrop";
double deltaX = 10;
double halfDeltaX = deltaX / 2.0;
......@@ -45,9 +45,9 @@ int main(int argc, char* argv[])
double real_l = 40;
double l = 40;
int startTimeStep = 60000;
int timeStep = 1000;
int numberOfTimeSteps = 61000;
int startTimeStep = 100;
int timeStep = 100;
int numberOfTimeSteps = 500;
int numberOfSamples = (numberOfTimeSteps - startTimeStep)/timeStep + 1;
int numberOfGridPoints = dimensions[0] * dimensions[1] * dimensions[2];
......@@ -58,34 +58,34 @@ int main(int argc, char* argv[])
av.setSpacing(geo_spacing);
av.setDeltaX(deltaX);
//av.createGeoMatrix(pathIn + "/bc/bc0.pvtu");
//if (myid == 0) av.writeGeoMatrixToBinaryFiles(pathOut + "/va/geomatrix.bin");
av.readGeoMatrixFromBinaryFiles(pathOut + "/va/geomatrix.bin");
av.createGeoMatrix(pathIn + "/bc/bc0.pvtu");
if (myid == 0) av.writeGeoMatrixToBinaryFiles(pathOut + "/va/geomatrix.bin");
//av.readGeoMatrixFromBinaryFiles(pathOut + "/va/geomatrix.bin");
av.initVolumeAveragingValues();
for (int t = startTimeStep; t <= numberOfTimeSteps; t += timeStep)
{
av.createMQMatrix(pathIn + "/mq/mq" + UbSystem::toString(t) + ".pvtu");
if (myid == 0) av.writeMqMatrixToBinaryFiles(pathOut + "/va/mq/mq" + UbSystem::toString(t) + "/mq", t);
//av.volumeAveragingWithMPI(real_l);
//if (myid == 0)
//{
// //av.sumOfVolumeAveragingValues();
// av.writeVolumeAveragingValuesToBinaryFiles(pathOut + "/va/vav/vav", t);
//}
av.volumeAveragingWithMPI(real_l);
if (myid == 0)
{
av.sumOfVolumeAveragingValues();
av.writeVolumeAveragingValuesToBinaryFiles(pathOut + "/va/vav/vav", t);
}
}
//av.writeMqMatrixToImageFile(pathOut + "/va/vav/mq");
//if (myid == 0) av.readVolumeAveragingValuesFromBinaryFiles(pathOut + "/va/vav/vav", 60000);
//if (myid == 0) av.writeVaMatrixToImageFile(pathOut + "/va/vav/vav");
//if (myid == 0)
//{
// av.initMeanVolumeAveragingValues();
// av.meanOfVolumeAveragingValues(numberOfSamples);
// av.writeMeanVolumeAveragingValuesToBinaryFiles(pathOut + "/va/mean/mean");
// av.writeMeanMatrixToImageFile(pathOut + "/va/vav/vavMean");
//}
if (myid == 0)
{
av.initMeanVolumeAveragingValues();
av.meanOfVolumeAveragingValues(numberOfSamples);
av.writeMeanVolumeAveragingValuesToBinaryFiles(pathOut + "/va/mean/mean");
av.writeMeanMatrixToImageFile(pathOut + "/va/vav/vavMean");
}
//for (int t = startTimeStep; t <= numberOfTimeSteps; t += timeStep)
//{
......@@ -98,29 +98,39 @@ int main(int argc, char* argv[])
//av.writeMeanVolumeAveragingValuesToBinaryFiles(pathOut + "/va/mean/mean");
//av.writeMeanMatrixToImageFile(pathOut + "/va/vav/vavMean");
//av.initFluctuationsofVolumeAveragingValues();
//av.initSumOfFluctuations();
//av.initMeanOfFluctuations();
//av.initStresses();
//av.initSumOfStresses();
//av.initMeanOfStresses();
//av.initPlanarAveragingMQ();
av.initFluctuations();
av.initSumOfVaFluctuations();
av.initMeanOfVaFluctuations();
av.initStresses();
av.initSumOfVaStresses();
av.initMeanOfVaStresses();
av.initPlanarAveraging();
//for (int t = startTimeStep; t <= numberOfTimeSteps; t += timeStep)
//{
// av.readVolumeAveragingValuesFromBinaryFiles(pathOut + "/va/vav/vav", t);
// av.fluctuationsOfVolumeAveragingValue();
// av.writeFluctuationsToBinaryFiles(pathOut + "/va/av/Fluc", t);
// av.writeStressesToBinaryFiles(pathOut + "/va/av/Stresses", t);
// av.sumOfFluctuations();
// av.sumOfStresses();
//}
av.initVolumeAveragingFluctStressValues();
for (int t = startTimeStep; t <= numberOfTimeSteps; t += timeStep)
{
//av.readVolumeAveragingValuesFromBinaryFiles(pathOut + "/va/vav/vav", t);
//av.readMqMatrixFromBinaryFiles(pathOut + "/va/mq/mq" + UbSystem::toString(t) + "/mq", t);
av.fluctuationsStress();
av.writeFluctuationsToImageFile(pathOut + "/va/vav/vaFluct");
av.volumeAveragingFluctStressWithMPI(real_l);
av.writeVaFluctuationsToBinaryFiles(pathOut + "/va/av/Fluc", t);
av.writeVaStressesToBinaryFiles(pathOut + "/va/av/Stresses", t);
av.writeVaFluctuationsToImageFile(pathOut + "/va/vav/vaVAFluct");
av.sumOfVaFluctuations();
av.sumOfVaStresses();
}
av.meanOfVaFluctuations(numberOfSamples);
av.meanOfVaStresses(numberOfSamples);
av.writeMeanOfVaFluctuationsToImageFile(pathOut + "/va/vav/vaMeanFluct");
//av.meanOfFluctuations(numberOfSamples);
//av.meanOfStresses(numberOfSamples);
//av.planarAveragingMQ(dimensions);
//av.writeToCSV(pathOut + "/va/av", geo_origin[2], deltaX);
av.planarAveraging();
av.writeToCSV(pathOut + "/va/av", geo_origin[2], deltaX);
}
catch (const std::exception& e)
{
......
......@@ -14,4 +14,9 @@ IF(${USE_METIS})
SET(METIS_INCLUDEDIR "d:/metis-5.1.0/include")
SET(METIS_DEBUG_LIBRARY "d:/metis-5.1.0/build/libmetis/Debug/metis.lib")
SET(METIS_RELEASE_LIBRARY "d:/metis-5.1.0/build/libmetis/Release/metis.lib")
ENDIF()
\ No newline at end of file
ENDIF()
#################################################################################
# VTK
#################################################################################
set(VTK_DIR "d:/tools/VTK/build/VTK-8.2.0")
#################################################################################
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment