Merge branch 'morphLBM' of github.com:JamesEMcClure/LBPM-WIA into morphLBM

This commit is contained in:
James E McClure 2019-03-26 21:36:07 -04:00
commit dbfb2c0f9e
3 changed files with 38 additions and 20 deletions

View File

@ -498,17 +498,23 @@ runAnalysis::runAnalysis( std::shared_ptr<Database> db,
d_N[0] = Dm->Nx;
d_N[1] = Dm->Ny;
d_N[2] = Dm->Nz;
d_restart_interval = db->getScalar<int>( "restart_interval" );
d_analysis_interval = db->getScalar<int>( "analysis_interval" );
d_blobid_interval = db->getScalar<int>( "blobid_interval" );
d_visualization_interval = db->getScalar<int>( "visualization_interval" );
auto restart_file = db->getScalar<std::string>( "restart_file" );
d_analysis_interval = db->getScalar<int>( "analysis_interval" );
d_subphase_analysis_interval = INT_MAX;
d_visualization_interval = INT_MAX;
d_blobid_interval = INT_MAX;
if (db->keyExists( "blobid_interval" )){
d_blobid_interval = db->getScalar<int>( "blobid_interval" );
}
if (db->keyExists( "visualization_interval" )){
d_visualization_interval = db->getScalar<int>( "visualization_interval" );
}
if (db->keyExists( "subphase_analysis_interval" )){
d_subphase_analysis_interval = db->getScalar<int>( "subphase_analysis_interval" );
}
else{
d_subphase_analysis_interval = INT_MAX;
}
auto restart_file = db->getScalar<std::string>( "restart_file" );
d_restartFile = restart_file + "." + rankString;
d_rank = MPI_WORLD_RANK();
writeIDMap(ID_map_struct(),0,id_map_filename);
@ -952,6 +958,15 @@ void runAnalysis::basic( int timestep, SubPhase &Averages, const double *Phi, do
d_wait_restart = d_tpool.add_work(work1);
}
if (timestep%d_visualization_interval==0){
// Write the vis files
auto work = new IOWorkItem( timestep, d_meshData, Averages, d_fillData, getComm() );
work->add_dependency(d_wait_analysis);
work->add_dependency(d_wait_subphase);
work->add_dependency(d_wait_vis);
d_wait_vis = d_tpool.add_work(work);
}
PROFILE_STOP("run");
}

View File

@ -591,7 +591,6 @@ void ScaLBL_ColorModel::Run(){
if (fabs((Ca - Ca_previous)/Ca) < tolerance || CURRENT_STEADY_TIMESTEPS > MAX_STEADY_TIMESTEPS){
MORPH_ADAPT = true;
CURRENT_MORPH_TIMESTEPS=0;
CURRENT_STEADY_TIMESTEPS=0;
delta_volume_target = (volA + volB)*morph_delta; // set target volume change
Averages->Full();
Averages->Write(timestep);
@ -650,6 +649,7 @@ void ScaLBL_ColorModel::Run(){
}
morph_timesteps=0;
}
CURRENT_STEADY_TIMESTEPS=0;
Ca_previous = Ca;
}
if (MORPH_ADAPT ){

View File

@ -87,6 +87,9 @@ int main(int argc, char **argv)
if (domain_db->keyExists( "checkerSize" )){
checkerSize = domain_db->getScalar<int>( "checkerSize" );
}
else {
checkerSize = SIZE[0];
}
auto ReadValues = domain_db->getVector<char>( "ReadValues" );
auto WriteValues = domain_db->getVector<char>( "WriteValues" );
auto ReadType = domain_db->getScalar<std::string>( "ReadType" );
@ -158,13 +161,13 @@ int main(int argc, char **argv)
for (int j = 0; j<Ny; j++){
for (int i = xStart; i < xStart+inlet_count_x; i++){
if ( (j/checkerSize + k/checkerSize)%2 == 0){
// solid checkers
SegData[k*Nx*Ny+j*Nx+i] = 0;
}
else{
// void checkers
SegData[k*Nx*Ny+j*Nx+i] = 2;
}
else{
// solid checkers
SegData[k*Nx*Ny+j*Nx+i] = 0;
}
}
}
}
@ -177,13 +180,13 @@ int main(int argc, char **argv)
for (int j = yStart; i < yStart+inlet_count_y; j++){
for (int i = 0; i<Nx; i++){
if ( (i/checkerSize + k/checkerSize)%2 == 0){
// solid checkers
SegData[k*Nx*Ny+j*Nx+i] = 0;
}
else{
// void checkers
SegData[k*Nx*Ny+j*Nx+i] = 2;
}
else{
// solid checkers
SegData[k*Nx*Ny+j*Nx+i] = 0;
}
}
}
}
@ -196,13 +199,13 @@ int main(int argc, char **argv)
for (int j = 0; j<Ny; j++){
for (int i = 0; i<Nx; i++){
if ( (i/checkerSize+j/checkerSize)%2 == 0){
// solid checkers
SegData[k*Nx*Ny+j*Nx+i] = 0;
}
else{
// void checkers
SegData[k*Nx*Ny+j*Nx+i] = 2;
}
else{
// solid checkers
SegData[k*Nx*Ny+j*Nx+i] = 0;
}
}
}
}