| 21 | } |
| 22 | |
| 23 | int main(int argc, char* argv[]) |
| 24 | { |
| 25 | amrex::Initialize(argc,argv); |
| 26 | { |
| 27 | if (argc < 3) { |
| 28 | print_usage(argc,argv); |
| 29 | } |
| 30 | |
| 31 | const std::string farg = amrex::get_command_argument(1); |
| 32 | if (farg == "-h" || farg == "--help") |
| 33 | { |
| 34 | print_usage(argc, argv); |
| 35 | } |
| 36 | |
| 37 | std::string name1, name2; |
| 38 | int ngrow = -1; |
| 39 | { |
| 40 | ParmParse pp; |
| 41 | pp.get("infile1", name1); |
| 42 | pp.get("infile2", name2); |
| 43 | pp.query("ngrow", ngrow); |
| 44 | } |
| 45 | |
| 46 | MultiFab mf1, mf2; |
| 47 | |
| 48 | Print() << "Reading " << name1 << std::endl; |
| 49 | VisMF::Read(mf1, name1); |
| 50 | |
| 51 | Print() << "Reading " << name2 << std::endl; |
| 52 | VisMF::Read(mf2, name2); |
| 53 | |
| 54 | if (ngrow < 0) { |
| 55 | ngrow = std::min(mf1.nGrow(), mf2.nGrow()); |
| 56 | } |
| 57 | if (ngrow > mf1.nGrow()) { |
| 58 | Abort(" ngrow bigger than infile1's ngrow! "); |
| 59 | } |
| 60 | if (ngrow > mf2.nGrow()) { |
| 61 | Abort(" ngrow bigger than infile2's ngrow! "); |
| 62 | } |
| 63 | bool same_boxarray = mf1.boxArray() == mf2.boxArray(); |
| 64 | if (! same_boxarray) { |
| 65 | if (ParallelDescriptor::IOProcessor()) { |
| 66 | Warning("The two multifabs have different BoxArrays."); |
| 67 | } |
| 68 | AMREX_ALWAYS_ASSERT(mf1.boxArray().ixType() == mf2.boxArray().ixType() && |
| 69 | mf1.boxArray().contains(mf2.boxArray()) && |
| 70 | mf2.boxArray().contains(mf1.boxArray())); |
| 71 | } |
| 72 | |
| 73 | const int ncomp = mf1.nComp(); |
| 74 | |
| 75 | std::vector<Real> mf1_min(ncomp); |
| 76 | std::vector<Real> mf1_max(ncomp); |
| 77 | std::vector<Real> mf2_min(ncomp); |
| 78 | std::vector<Real> mf2_max(ncomp); |
| 79 | |
| 80 | for (int icomp = 0; icomp < ncomp; ++icomp) { |
nothing calls this directly
no test coverage detected