analysis now working with dfh simultor

This commit is contained in:
James E McClure 2018-05-06 22:17:45 -04:00
parent 4fd78883e8
commit 82d0b6848f
2 changed files with 27 additions and 7 deletions

View File

@ -465,7 +465,7 @@ AnalysisType runAnalysis::computeAnalysisType( int timestep )
* Run the analysis *
******************************************************************/
void runAnalysis::run( int timestep, TwoPhase& Averages, const double *Phi,
double *Pressure, double *Velocity, double *fq, double *Den )
double *Pressure, double *Velocity, double *fq, double *Den)
{
int N = d_N[0]*d_N[1]*d_N[2];
@ -493,10 +493,29 @@ void runAnalysis::run( int timestep, TwoPhase& Averages, const double *Phi,
{
phase = std::shared_ptr<DoubleArray>(new DoubleArray(d_N[0],d_N[1],d_N[2]));
//ScaLBL_CopyToHost(phase->data(),Phi,N*sizeof(double));
DoubleArray PHASE(d_N[0],d_N[1],d_N[2]);
d_ScaLBL_Comm.RegularLayout(d_Map,Phi,PHASE);
memcpy(PHASE.data(),phase->data(),N*sizeof(double));
// try 2 d_ScaLBL_Comm.RegularLayout(d_Map,Phi,Averages.Phase);
// memcpy(Averages.Phase.data(),phase->data(),N*sizeof(double));
int Nx = d_N[0];
int Ny = d_N[1];
int Nz = d_N[2];
double *TmpDat;
double value;
TmpDat = new double [d_Np];
ScaLBL_CopyToHost(&TmpDat[0],&Phi[0], d_Np*sizeof(double));
for (int k=0; k<Nz; k++){
for (int j=0; j<Ny; j++){
for (int i=0; i<Nx; i++){
int n=k*Nx*Ny+j*Nx+i;
int idx=d_Map(i,j,k);
if (!(idx<0)){
double value=TmpDat[idx];
//regdata(i,j,k)=value;
phase->data()[n]=value;
}
}
}
}
delete [] TmpDat;
}
if ( matches(type,AnalysisType::CopyPhaseIndicator) ) {
memcpy(Averages.Phase_tplus.data(),phase->data(),N*sizeof(double));

View File

@ -96,7 +96,7 @@ int main(int argc, char **argv)
int RESTART_INTERVAL=20000;
//int ANALYSIS_)INTERVAL=1000;
int BLOB_ANALYSIS_INTERVAL=1000;
int timestep = 6;
int timestep = 0;
if (rank==0){
//.............................................................
@ -782,7 +782,8 @@ int main(int argc, char **argv)
FILE *OUTFILE;
sprintf(LocalRankFilename,"Phase.%05i.raw",rank);
OUTFILE = fopen(LocalRankFilename,"wb");
fwrite(PhaseField.data(),8,N,OUTFILE);
//fwrite(PhaseField.data(),8,N,OUTFILE);
fwrite(Averages->Phase.data(),8,N,OUTFILE);
fclose(OUTFILE);
PROFILE_STOP("Main");