fix timestep / vis /analysis issues
This commit is contained in:
parent
b6a0379a9e
commit
2f3e9a86ed
@ -208,16 +208,16 @@ private:
|
|||||||
class IOWorkItem: public ThreadPool::WorkItemRet<void>
|
class IOWorkItem: public ThreadPool::WorkItemRet<void>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
IOWorkItem( std::shared_ptr<Database> input_db_, std::vector<IO::MeshDataStruct>& visData_,
|
IOWorkItem(int timestep_, std::shared_ptr<Database> input_db_, std::vector<IO::MeshDataStruct>& visData_,
|
||||||
SubPhase& Averages_, fillHalo<double>& fillData_, runAnalysis::commWrapper&& comm_ ):
|
SubPhase& Averages_, fillHalo<double>& fillData_, runAnalysis::commWrapper&& comm_ ):
|
||||||
input_db(input_db_), visData(visData_), Averages(Averages_), fillData(fillData_), comm(std::move(comm_))
|
timestep(timestep_), input_db(input_db_), visData(visData_), Averages(Averages_), fillData(fillData_), comm(std::move(comm_))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
~IOWorkItem() { }
|
~IOWorkItem() { }
|
||||||
virtual void run() {
|
virtual void run() {
|
||||||
auto color_db = input_db->getDatabase( "Color" );
|
auto color_db = input_db->getDatabase( "Color" );
|
||||||
auto vis_db = input_db->getDatabase( "Visualization" );
|
auto vis_db = input_db->getDatabase( "Visualization" );
|
||||||
int timestep = color_db->getWithDefault<int>( "timestep", 0 );
|
// int timestep = color_db->getWithDefault<int>( "timestep", 0 );
|
||||||
|
|
||||||
PROFILE_START("Save Vis",1);
|
PROFILE_START("Save Vis",1);
|
||||||
|
|
||||||
@ -763,13 +763,13 @@ AnalysisType runAnalysis::computeAnalysisType( int timestep )
|
|||||||
/******************************************************************
|
/******************************************************************
|
||||||
* Run the analysis *
|
* Run the analysis *
|
||||||
******************************************************************/
|
******************************************************************/
|
||||||
void runAnalysis::run( std::shared_ptr<Database> input_db, TwoPhase& Averages, const double *Phi,
|
void runAnalysis::run(int timestep, std::shared_ptr<Database> input_db, 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];
|
int N = d_N[0]*d_N[1]*d_N[2];
|
||||||
|
|
||||||
auto db = input_db->getDatabase( "Analysis" );
|
auto db = input_db->getDatabase( "Analysis" );
|
||||||
int timestep = db->getWithDefault<int>( "timestep", 0 );
|
//int timestep = db->getWithDefault<int>( "timestep", 0 );
|
||||||
|
|
||||||
// Check which analysis steps we need to perform
|
// Check which analysis steps we need to perform
|
||||||
auto type = computeAnalysisType( timestep );
|
auto type = computeAnalysisType( timestep );
|
||||||
@ -935,15 +935,15 @@ void runAnalysis::run( std::shared_ptr<Database> input_db, TwoPhase& Averages, c
|
|||||||
/******************************************************************
|
/******************************************************************
|
||||||
* Run the analysis *
|
* Run the analysis *
|
||||||
******************************************************************/
|
******************************************************************/
|
||||||
void runAnalysis::basic( std::shared_ptr<Database> input_db, SubPhase &Averages, const double *Phi, double *Pressure, double *Velocity, double *fq, double *Den)
|
void runAnalysis::basic(int timestep, std::shared_ptr<Database> input_db, SubPhase &Averages, const double *Phi, double *Pressure, double *Velocity, double *fq, double *Den)
|
||||||
{
|
{
|
||||||
int N = d_N[0]*d_N[1]*d_N[2];
|
int N = d_N[0]*d_N[1]*d_N[2];
|
||||||
|
|
||||||
// Check which analysis steps we need to perform
|
// Check which analysis steps we need to perform
|
||||||
auto color_db = input_db->getDatabase( "Color" );
|
auto color_db = input_db->getDatabase( "Color" );
|
||||||
//auto vis_db = input_db->getDatabase( "Visualization" );
|
auto vis_db = input_db->getDatabase( "Visualization" );
|
||||||
|
|
||||||
int timestep = color_db->getWithDefault<int>( "timestep", 0 );
|
//int timestep = color_db->getWithDefault<int>( "timestep", 0 );
|
||||||
auto type = computeAnalysisType( timestep );
|
auto type = computeAnalysisType( timestep );
|
||||||
if ( type == AnalysisType::AnalyzeNone )
|
if ( type == AnalysisType::AnalyzeNone )
|
||||||
return;
|
return;
|
||||||
@ -1012,6 +1012,7 @@ void runAnalysis::basic( std::shared_ptr<Database> input_db, SubPhase &Averages,
|
|||||||
ScaLBL_CopyToHost(cDen.get(),Den,2*d_Np*sizeof(double));
|
ScaLBL_CopyToHost(cDen.get(),Den,2*d_Np*sizeof(double));
|
||||||
|
|
||||||
if (d_rank==0) {
|
if (d_rank==0) {
|
||||||
|
color_db->putScalar<int>("timestep",timestep);
|
||||||
color_db->putScalar<bool>( "Restart", true );
|
color_db->putScalar<bool>( "Restart", true );
|
||||||
input_db->putDatabase("Color", color_db);
|
input_db->putDatabase("Color", color_db);
|
||||||
std::ofstream OutStream("Restart.db");
|
std::ofstream OutStream("Restart.db");
|
||||||
@ -1038,12 +1039,12 @@ void runAnalysis::basic( std::shared_ptr<Database> input_db, SubPhase &Averages,
|
|||||||
PROFILE_STOP("run");
|
PROFILE_STOP("run");
|
||||||
}
|
}
|
||||||
|
|
||||||
void runAnalysis::WriteVisData( std::shared_ptr<Database> input_db, SubPhase &Averages, const double *Phi, double *Pressure, double *Velocity, double *fq, double *Den)
|
void runAnalysis::WriteVisData(int timestep, std::shared_ptr<Database> input_db, SubPhase &Averages, const double *Phi, double *Pressure, double *Velocity, double *fq, double *Den)
|
||||||
{
|
{
|
||||||
int N = d_N[0]*d_N[1]*d_N[2];
|
int N = d_N[0]*d_N[1]*d_N[2];
|
||||||
auto color_db = input_db->getDatabase( "Color" );
|
auto color_db = input_db->getDatabase( "Color" );
|
||||||
auto vis_db = input_db->getDatabase( "Visualization" );
|
auto vis_db = input_db->getDatabase( "Visualization" );
|
||||||
int timestep = color_db->getWithDefault<int>( "timestep", 0 );
|
//int timestep = color_db->getWithDefault<int>( "timestep", 0 );
|
||||||
|
|
||||||
// Check which analysis steps we need to perform
|
// Check which analysis steps we need to perform
|
||||||
auto type = computeAnalysisType( timestep );
|
auto type = computeAnalysisType( timestep );
|
||||||
|
@ -24,18 +24,18 @@ class runAnalysis
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
//! Constructor
|
//! Constructor
|
||||||
runAnalysis( std::shared_ptr<Database> db, const RankInfoStruct& rank_info,
|
runAnalysis(int timestep, std::shared_ptr<Database> db, const RankInfoStruct& rank_info,
|
||||||
std::shared_ptr<ScaLBL_Communicator> ScaLBL_Comm, std::shared_ptr <Domain> dm, int Np, bool Regular, IntArray Map );
|
std::shared_ptr<ScaLBL_Communicator> ScaLBL_Comm, std::shared_ptr <Domain> dm, int Np, bool Regular, IntArray Map );
|
||||||
|
|
||||||
//! Destructor
|
//! Destructor
|
||||||
~runAnalysis();
|
~runAnalysis();
|
||||||
|
|
||||||
//! Run the next analysis
|
//! Run the next analysis
|
||||||
void run( std::shared_ptr<Database> db, TwoPhase &Averages, const double *Phi,
|
void run(int timestep, std::shared_ptr<Database> db, TwoPhase &Averages, const double *Phi,
|
||||||
double *Pressure, double *Velocity, double *fq, double *Den );
|
double *Pressure, double *Velocity, double *fq, double *Den );
|
||||||
|
|
||||||
void basic( std::shared_ptr<Database> db, SubPhase &Averages, const double *Phi, double *Pressure, double *Velocity, double *fq, double *Den );
|
void basic( int timestep, std::shared_ptr<Database> db, SubPhase &Averages, const double *Phi, double *Pressure, double *Velocity, double *fq, double *Den );
|
||||||
void WriteVisData( std::shared_ptr<Database> vis_db, SubPhase &Averages, const double *Phi, double *Pressure, double *Velocity, double *fq, double *Den);
|
void WriteVisData(int timestep, std::shared_ptr<Database> vis_db, SubPhase &Averages, const double *Phi, double *Pressure, double *Velocity, double *fq, double *Den);
|
||||||
|
|
||||||
//! Finish all active analysis
|
//! Finish all active analysis
|
||||||
void finish();
|
void finish();
|
||||||
|
@ -715,10 +715,10 @@ void ScaLBL_ColorModel::Run(){
|
|||||||
}
|
}
|
||||||
// Run the analysis
|
// Run the analysis
|
||||||
//analysis.run( timestep, *Averages, Phi, Pressure, Velocity, fq, Den );
|
//analysis.run( timestep, *Averages, Phi, Pressure, Velocity, fq, Den );
|
||||||
color_db->putScalar<int>("timestep",timestep);
|
//color_db->putScalar<int>("timestep",timestep);
|
||||||
current_db->putDatabase("Color", color_db);
|
//current_db->putDatabase("Color", color_db);
|
||||||
|
|
||||||
analysis.basic( current_db, *Averages, Phi, Pressure, Velocity, fq, Den );
|
analysis.basic(timestep, current_db, *Averages, Phi, Pressure, Velocity, fq, Den );
|
||||||
|
|
||||||
|
|
||||||
// allow initial ramp-up to get closer to steady state
|
// allow initial ramp-up to get closer to steady state
|
||||||
@ -769,7 +769,7 @@ void ScaLBL_ColorModel::Run(){
|
|||||||
delta_volume_target = Dm->Volume*volA *morph_delta; // set target volume change
|
delta_volume_target = Dm->Volume*volA *morph_delta; // set target volume change
|
||||||
Averages->Full();
|
Averages->Full();
|
||||||
Averages->Write(timestep);
|
Averages->Write(timestep);
|
||||||
analysis.WriteVisData( current_db, *Averages, Phi, Pressure, Velocity, fq, Den );
|
analysis.WriteVisData(timestep, current_db, *Averages, Phi, Pressure, Velocity, fq, Den );
|
||||||
analysis.finish();
|
analysis.finish();
|
||||||
|
|
||||||
if (rank==0){
|
if (rank==0){
|
||||||
|
Loading…
Reference in New Issue
Block a user