def test_mapcells(prepare_config_fix, cpltype, test, cfdprocs, mdprocs, err_msg): MD_PARAMS = {"lx": 24.0, "ly": 24.0, "lz": 24.0, "which_test": test} MD_PARAMS["npx"], MD_PARAMS["npy"], MD_PARAMS["npz"] = mdprocs CFD_PARAMS = { "lx": 24.0, "ly": 24.0, "lz": 24.0, "ncx": ncx, "ncy": ncy, "ncz": ncz, "which_test": "cell_test" } CFD_PARAMS["npx"], CFD_PARAMS["npy"], CFD_PARAMS["npz"] = cfdprocs CONFIG_PARAMS = { "cfd_bcx": 1, "cfd_bcy": 1, "cfd_bcz": 1, "olap_xlo": 1, "olap_xhi": 24, "olap_ylo": 1, "olap_yhi": 4, "olap_zlo": 1, "olap_zhi": 24, "cnst_xlo": 1, "cnst_xhi": 1, "cnst_ylo": 1, "cnst_yhi": 1, "cnst_zlo": 1, "cnst_zhi": 1, "tstep_ratio": 50, } run_test(TEST_TEMPLATE_DIR, CONFIG_PARAMS, MD_EXEC, MD_FNAME, MD_ARGS, CFD_EXEC, CFD_FNAME, CFD_ARGS, MD_PARAMS, CFD_PARAMS, err_msg, mpirun=cpltype)
def test_olapcells(prepare_config_fix, olapcells, err_msg): MD_PARAMS = {"npx": 4, "npy": 4, "npz": 4, "lx": 24.0, "ly": 24.0, "lz": 24.0, } CFD_PARAMS = {"npx": 2, "npy": 2, "npz": 2, "lx": 24.0, "ly": 24.0, "lz": 24.0, "ncx": 24, "ncy": 24, "ncz": 24, } CONFIG_PARAMS = {"cfd_bcx": 1, "cfd_bcy": 1, "cfd_bcz": 1, "cnst_xlo": 1, "cnst_xhi": 1, "cnst_ylo": 1, "cnst_yhi": 1, "cnst_zlo": 1, "cnst_zhi": 1, "tstep_ratio": 50, } CONFIG_PARAMS["olap_xlo"], CONFIG_PARAMS["olap_xhi"] = olapcells[0:2] CONFIG_PARAMS["olap_ylo"], CONFIG_PARAMS["olap_yhi"] = olapcells[2:4] CONFIG_PARAMS["olap_zlo"], CONFIG_PARAMS["olap_zhi"] = olapcells[4:6] run_test(TEST_TEMPLATE_DIR, CONFIG_PARAMS, MD_EXEC, MD_FNAME, CFD_EXEC, CFD_FNAME, MD_PARAMS, CFD_PARAMS, err_msg)
def test_cfdprocs(prepare_config_fix, cfdprocs, err_msg): MD_PARAMS = {"npx": 4, "npy": 4, "npz": 4, "lx": 24.0, "ly": 24.0, "lz": 24.0, } CFD_PARAMS = {"lx": 24.0, "ly": 24.0, "lz": 24.0, "ncx": 24, "ncy": 24, "ncz": 24, } CFD_PARAMS["npx"], CFD_PARAMS["npy"], CFD_PARAMS["npz"] = cfdprocs CONFIG_PARAMS = {"cfd_bcx": 1, "cfd_bcy": 1, "cfd_bcz": 1, "olap_xlo": 1, "olap_xhi": 24, "olap_ylo": 1, "olap_yhi": 4, "olap_zlo": 1, "olap_zhi": 24, "cnst_xlo": 1, "cnst_xhi": 1, "cnst_ylo": 1, "cnst_yhi": 1, "cnst_zlo": 1, "cnst_zhi": 1, "tstep_ratio": 50, } run_test(TEST_TEMPLATE_DIR, CONFIG_PARAMS, MD_EXEC, MD_FNAME, CFD_EXEC, CFD_FNAME, MD_PARAMS, CFD_PARAMS, err_msg)
def test_domaincells(prepare_config_fix, domaincells, err_msg): MD_PARAMS = { "npx": 2, "npy": 2, "npz": 2, "lx": 24.0, "ly": 24.0, "lz": 24.0, } CFD_PARAMS = { "npx": 1, "npy": 1, "npz": 1, "lx": 24.0, "ly": 24.0, "lz": 24.0 } CFD_PARAMS["ncx"], CFD_PARAMS["ncy"], CFD_PARAMS["ncz"] = domaincells CONFIG_PARAMS = { "cfd_bcx": 1, "cfd_bcy": 1, "cfd_bcz": 1, "olap_xlo": 1, "olap_xhi": 1, "olap_ylo": 1, "olap_yhi": 1, "olap_zlo": 1, "olap_zhi": 1, "cnst_xlo": 1, "cnst_xhi": 1, "cnst_ylo": 1, "cnst_yhi": 1, "cnst_zlo": 1, "cnst_zhi": 1, "tstep_ratio": 50, } run_test(TEST_TEMPLATE_DIR, CONFIG_PARAMS, MD_EXEC, MD_FNAME, MD_ARGS, CFD_EXEC, CFD_FNAME, CFD_ARGS, MD_PARAMS, CFD_PARAMS, err_msg)
def test_olapcells(prepare_config_fix, olapcells, err_msg): MD_PARAMS = { "npx": 2, "npy": 2, "npz": 2, "lx": 24.0, "ly": 24.0, "lz": 24.0, } CFD_PARAMS = { "npx": 1, "npy": 1, "npz": 1, "lx": 24.0, "ly": 24.0, "lz": 24.0, "ncx": 24, "ncy": 24, "ncz": 24, } CONFIG_PARAMS = { "cfd_bcx": 1, "cfd_bcy": 1, "cfd_bcz": 1, "cnst_xlo": 1, "cnst_xhi": 1, "cnst_ylo": 1, "cnst_yhi": 1, "cnst_zlo": 1, "cnst_zhi": 1, "tstep_ratio": 50, } CONFIG_PARAMS["olap_xlo"], CONFIG_PARAMS["olap_xhi"] = olapcells[0:2] CONFIG_PARAMS["olap_ylo"], CONFIG_PARAMS["olap_yhi"] = olapcells[2:4] CONFIG_PARAMS["olap_zlo"], CONFIG_PARAMS["olap_zhi"] = olapcells[4:6] run_test(TEST_TEMPLATE_DIR, CONFIG_PARAMS, MD_EXEC, MD_FNAME, MD_ARGS, CFD_EXEC, CFD_FNAME, CFD_ARGS, MD_PARAMS, CFD_PARAMS, err_msg)
def test_velsP2C(prepare_config_fix, cfdprocs, mdprocs, cells, err_msg): MD_PARAMS = {"lx": 300.0, "ly": 300.0, "lz": 300.0} MD_PARAMS["npx"], MD_PARAMS["npy"], MD_PARAMS["npz"] = mdprocs CFD_PARAMS = {"lx": 300.0, "ly": 300.0, "lz": 300.0} CFD_PARAMS["npx"], CFD_PARAMS["npy"], CFD_PARAMS["npz"] = cfdprocs CFD_PARAMS["ncx"], CFD_PARAMS["ncy"], CFD_PARAMS["ncz"] = cells # Needed for decomposParDict CFD_PARAMS["nprocs"] = cfdprocs[0]*cfdprocs[1]*cfdprocs[2] CONFIG_PARAMS = {"cfd_bcx": 1, "cfd_bcy": 1, "cfd_bcz": 1, "olap_xlo": 1, "olap_xhi": cells[0], "olap_ylo": 1, "olap_yhi": 5, "olap_zlo": 1, "olap_zhi": cells[2], "cnst_xlo": 1, "cnst_xhi": cells[0], "cnst_ylo": 3, "cnst_yhi": 5, "cnst_zlo": 1, "cnst_zhi": cells[2], "tstep_ratio": 1, } # Parametrize OpenFOAM files mesh_file = os.path.join(CFD_FNAME+"/", "constant/polyMesh/blockMeshDict") parametrize_file(mesh_file, mesh_file, CFD_PARAMS) control_dict_file = os.path.join(CFD_FNAME+"/", "system/decomposeParDict") parametrize_file(control_dict_file, control_dict_file, CFD_PARAMS) try: subprocess.check_output(["blockMesh", "-case", CFD_FNAME]) except: assert False try: subprocess.check_output(["decomposePar", "-case", CFD_FNAME]) except: assert False correct = run_test(TEST_TEMPLATE_DIR, CONFIG_PARAMS, MD_EXEC, MD_FNAME, MD_ARGS, CFD_EXEC, CFD_FNAME, CFD_ARGS, MD_PARAMS, CFD_PARAMS, err_msg, True) if correct: # Reconstruct the fields from processor directories. try: subprocess.check_output(["reconstructPar", "-case", CFD_FNAME]) except: assert False # Reconstruct the fields from processor directories. try: subprocess.check_output(["writeCellCentres", "-case", CFD_FNAME]) except: assert False compare_forces(1e-6, CFD_PARAMS)
def test_forcesC2P(prepare_config_fix, cfdprocs, mdprocs, err_msg): MD_PARAMS = {"lx": 300.0, "ly": 300.0, "lz": 300.0} MD_PARAMS["npx"], MD_PARAMS["npy"], MD_PARAMS["npz"] = mdprocs CFD_PARAMS = {"lx": 300.0, "ly": 300.0, "lz": 300.0, "ncx": 15, "ncy": 15, "ncz": 15, } CFD_PARAMS["npx"], CFD_PARAMS["npy"], CFD_PARAMS["npz"] = cfdprocs CONFIG_PARAMS = {"cfd_bcx": 1, "cfd_bcy": 1, "cfd_bcz": 1, "olap_xlo": 1, "olap_xhi": 15, "olap_ylo": 1, "olap_yhi": 5, "olap_zlo": 1, "olap_zhi": 15, "cnst_xlo": 1, "cnst_xhi": 15, "cnst_ylo": 5, "cnst_yhi": 5, "cnst_zlo": 1, "cnst_zhi": 15, "tstep_ratio": 1, } correct = run_test(TEST_TEMPLATE_DIR, CONFIG_PARAMS, MD_EXEC, MD_FNAME, CFD_EXEC, CFD_FNAME, MD_PARAMS, CFD_PARAMS, err_msg) if correct: compare_forces(1e-6)
def test_velocitiesP2C(prepare_config_fix, cfdprocs, mdprocs, err_msg): MD_PARAMS = {"lx": 300.0, "ly": 300.0, "lz": 300.0} MD_PARAMS["npx"], MD_PARAMS["npy"], MD_PARAMS["npz"] = mdprocs CFD_PARAMS = {"lx": 300.0, "ly": 300.0, "lz": 300.0, "ncx": 15, "ncy": 15, "ncz": 15, } CFD_PARAMS["npx"], CFD_PARAMS["npy"], CFD_PARAMS["npz"] = cfdprocs CONFIG_PARAMS = {"cfd_bcx": 1, "cfd_bcy": 1, "cfd_bcz": 1, "olap_xlo": 1, "olap_xhi": 15, "olap_ylo": 1, "olap_yhi": 5, "olap_zlo": 1, "olap_zhi": 15, "cnst_xlo": 1, "cnst_xhi": 15, "cnst_ylo": 5, "cnst_yhi": 5, "cnst_zlo": 1, "cnst_zhi": 15, "tstep_ratio": 1, } correct = run_test(TEST_TEMPLATE_DIR, CONFIG_PARAMS, MD_EXEC, MD_FNAME, MD_ARGS, CFD_EXEC, CFD_FNAME, CFD_ARGS, MD_PARAMS, CFD_PARAMS, err_msg, True) if correct: compare_vels(1e-6)