def test_get_casedir(casedir): pp = PostProcessor(dict(casedir=casedir)) assert os.path.isdir(pp.get_casedir()) assert os.path.samefile(pp.get_casedir(), casedir) pp.update_all({}, 0.0, 0) assert len(os.listdir(pp.get_casedir())) == 1 pp.clean_casedir() assert len(os.listdir(pp.get_casedir())) == 0
def test_store_params(casedir): pp = PostProcessor(dict(casedir=casedir)) params = ParamDict(Field=Field.default_params(), PostProcessor=PostProcessor.default_params()) pp.store_params(params) # Read back params params2 = None with open(os.path.join(pp.get_casedir(), "params.pickle"), 'r') as f: params2 = pickle.load(f) assert params2 == params str_params2 = open(os.path.join(pp.get_casedir(), "params.txt"), 'r').read() assert str_params2 == str(params)
def test_store_mesh(casedir): pp = PostProcessor(dict(casedir=casedir)) from dolfin import (UnitSquareMesh, CellFunction, FacetFunction, AutoSubDomain, Mesh, HDF5File, assemble, Expression, ds, dx) # Store mesh mesh = UnitSquareMesh(6, 6) celldomains = CellFunction("size_t", mesh) celldomains.set_all(0) AutoSubDomain(lambda x: x[0] < 0.5).mark(celldomains, 1) facetdomains = FacetFunction("size_t", mesh) AutoSubDomain(lambda x, on_boundary: x[0] < 0.5 and on_boundary).mark( facetdomains, 1) pp.store_mesh(mesh, celldomains, facetdomains) # Read mesh back mesh2 = Mesh() f = HDF5File(mpi_comm_world(), os.path.join(pp.get_casedir(), "mesh.hdf5"), 'r') f.read(mesh2, "Mesh", False) celldomains2 = CellFunction("size_t", mesh2) f.read(celldomains2, "CellDomains") facetdomains2 = FacetFunction("size_t", mesh2) f.read(facetdomains2, "FacetDomains") e = Expression("1+x[1]", degree=1) dx1 = dx(1, domain=mesh, subdomain_data=celldomains) dx2 = dx(1, domain=mesh2, subdomain_data=celldomains2) C1 = assemble(e * dx1) C2 = assemble(e * dx2) assert abs(C1 - C2) < 1e-10 ds1 = ds(1, domain=mesh, subdomain_data=facetdomains) ds2 = ds(1, domain=mesh2, subdomain_data=facetdomains2) F1 = assemble(e * ds1) F2 = assemble(e * ds2) assert abs(F1 - F2) < 1e-10