def test_plot_mesh1b(): mesh = Mesh() mesh.load(domain_mesh) view = MeshView("Solution") view.show(mesh, lib="mpl", method="orders", show=False) plot_mesh_mpl(mesh.nodes, mesh.elements) plot_mesh_mpl(mesh.nodes_dict, mesh.elements)
def test_plot_mesh3d(): mesh = Mesh() mesh.load(domain_mesh) mesh.refine_all_elements() mesh.refine_all_elements() view = MeshView("Solution") view.show(mesh, lib="mpl", method="orders", show=False)
def test_plot_mesh1a(): mesh = Mesh() mesh.load(domain_mesh) view = MeshView("Solution") view.show(mesh, lib="mpl", method="simple", show=False) plot_mesh_mpl_simple(mesh.nodes, mesh.elements) plot_mesh_mpl_simple(mesh.nodes_dict, mesh.elements) plot_mesh_mpl_simple(mesh.nodes, mesh.elements, plot_nodes=False) plot_mesh_mpl_simple(mesh.nodes_dict, mesh.elements, plot_nodes=False)
def test_plot_mesh2(): mesh = Mesh() mesh.load(domain_mesh) mesh.refine_element(0) view = MeshView("Solution") view.show(mesh, lib="mpl", method="simple", show=False) plot_mesh_mpl(mesh.nodes_dict, mesh.elements) plot_mesh_mpl(mesh.nodes_dict, mesh.elements, plot_nodes=False) view.show(mesh, lib="mpl", method="orders", show=False) plot_mesh_mpl(mesh.nodes_dict, mesh.elements)
def calc(threshold=0.3, strategy=0, h_only=False, error_tol=1, interactive_plotting=False, show_mesh=False, show_graph=True): mesh = Mesh() mesh.create([ [0, 0], [1, 0], [1, 1], [0, 1], ], [ [2, 3, 0, 1, 0], ], [ [0, 1, 1], [1, 2, 1], [2, 3, 1], [3, 0, 1], ], []) mesh.refine_all_elements() shapeset = H1Shapeset() pss = PrecalcShapeset(shapeset) space = H1Space(mesh, shapeset) set_bc(space) space.set_uniform_order(1) wf = WeakForm(1) set_forms(wf) sln = Solution() rsln = Solution() solver = DummySolver() selector = H1ProjBasedSelector(CandList.HP_ANISO, 1.0, -1, shapeset) view = ScalarView("Solution") iter = 0 graph = [] while 1: space.assign_dofs() sys = LinSystem(wf, solver) sys.set_spaces(space) sys.set_pss(pss) sys.assemble() sys.solve_system(sln) dofs = sys.get_matrix().shape[0] if interactive_plotting: view.show(sln, lib=lib, notebook=True, filename="a%02d.png" % iter) rsys = RefSystem(sys) rsys.assemble() rsys.solve_system(rsln) hp = H1Adapt([space]) hp.set_solutions([sln], [rsln]) err_est = hp.calc_error() * 100 err_est = hp.calc_error(sln, rsln) * 100 print "iter=%02d, err_est=%5.2f%%, DOFS=%d" % (iter, err_est, dofs) graph.append([dofs, err_est]) if err_est < error_tol: break hp.adapt(selector, threshold, strategy) iter += 1 if not interactive_plotting: view.show(sln, lib=lib, notebook=True) if show_mesh: mview = MeshView("Mesh") mview.show(mesh, lib="mpl", notebook=True, filename="b.png") if show_graph: from numpy import array graph = array(graph) import pylab pylab.clf() pylab.plot(graph[:, 0], graph[:, 1], "ko", label="error estimate") pylab.plot(graph[:, 0], graph[:, 1], "k-") pylab.title("Error Convergence for the Inner Layer Problem") pylab.legend() pylab.xlabel("Degrees of Freedom") pylab.ylabel("Error [%]") pylab.yscale("log") pylab.grid() pylab.savefig("graph.png")
#! /usr/bin/env python """ Displays a mesh file. Usage: ./show_mesh.py file.mesh """ from hermes2d import Mesh, MeshView import sys filename = sys.argv[1] mesh = Mesh() mesh.load(filename) mview = MeshView(filename, 100, 100, 500, 500) mview.show(mesh, lib="mpl", method="orders")
#! /usr/bin/env python """ Displays a mesh file. Usage: ./show_mesh.py file.mesh """ from hermes2d import Mesh, MeshView import sys filename = sys.argv[1] mesh = Mesh() mesh.load(filename) mview = MeshView(filename, 100, 100, 500, 500) mview.show(mesh)
def test_plot_mesh4(): mesh = Mesh() mesh.load(domain_mesh) view = MeshView("Solution") view.show(mesh, lib="mpl", show=False, method="orders")
print("xdof=%d, ydof=%d\n" % (xdisp.get_num_dofs(), ydisp.get_num_dofs()) ) # Solve the coarse mesh problem ls = LinSystem(wf, solver) ls.set_spaces(xdisp, ydisp) ls.set_pss(xpss, ypss) ls.assemble() ls.solve_system(x_sln_coarse, y_sln_coarse, lib="scipy") # View the solution -- this can be slow; for illustration only stress_coarse = VonMisesFilter(x_sln_coarse, y_sln_coarse, mu, lamda) #sview.set_min_max_range(0, 3e4) sview.show(stress_coarse, lib='mayavi') #xoview.show(xdisp, lib='mayavi') #yoview.show(ydisp, lib='mayavi') xomview.show(xmesh, space=xdisp, lib="mpl", method="orders", notebook=False) yomview.show(ymesh, space=ydisp, lib="mpl", method="orders", notebook=False) # Solve the fine mesh problem rs = RefSystem(ls) rs.assemble() rs.solve_system(x_sln_fine, y_sln_fine, lib="scipy") # Calculate element errors and total error estimate hp = H1OrthoHP(xdisp, ydisp) set_hp_forms(hp) err_est = hp.calc_error_2(x_sln_coarse, y_sln_coarse, x_sln_fine, y_sln_fine) * 100 print("Error estimate: %s" % err_est) # If err_est too large, adapt the mesh
def calc( threshold=0.3, strategy=0, h_only=False, error_tol=1, interactive_plotting=False, show_mesh=False, show_graph=True, ): mesh = Mesh() mesh.create( [[0, 0], [1, 0], [1, 1], [0, 1]], [[2, 3, 0, 1, 0]], [[0, 1, 1], [1, 2, 1], [2, 3, 1], [3, 0, 1]], [] ) mesh.refine_all_elements() shapeset = H1Shapeset() pss = PrecalcShapeset(shapeset) space = H1Space(mesh, shapeset) set_bc(space) space.set_uniform_order(1) wf = WeakForm(1) set_forms(wf) sln = Solution() rsln = Solution() solver = DummySolver() selector = H1ProjBasedSelector(CandList.HP_ANISO, 1.0, -1, shapeset) view = ScalarView("Solution") iter = 0 graph = [] while 1: space.assign_dofs() sys = LinSystem(wf, solver) sys.set_spaces(space) sys.set_pss(pss) sys.assemble() sys.solve_system(sln) dofs = sys.get_matrix().shape[0] if interactive_plotting: view.show(sln, lib=lib, notebook=True, filename="a%02d.png" % iter) rsys = RefSystem(sys) rsys.assemble() rsys.solve_system(rsln) hp = H1Adapt([space]) hp.set_solutions([sln], [rsln]) err_est = hp.calc_error() * 100 err_est = hp.calc_error(sln, rsln) * 100 print "iter=%02d, err_est=%5.2f%%, DOFS=%d" % (iter, err_est, dofs) graph.append([dofs, err_est]) if err_est < error_tol: break hp.adapt(selector, threshold, strategy) iter += 1 if not interactive_plotting: view.show(sln, lib=lib, notebook=True) if show_mesh: mview = MeshView("Mesh") mview.show(mesh, lib="mpl", notebook=True, filename="b.png") if show_graph: from numpy import array graph = array(graph) import pylab pylab.clf() pylab.plot(graph[:, 0], graph[:, 1], "ko", label="error estimate") pylab.plot(graph[:, 0], graph[:, 1], "k-") pylab.title("Error Convergence for the Inner Layer Problem") pylab.legend() pylab.xlabel("Degrees of Freedom") pylab.ylabel("Error [%]") pylab.yscale("log") pylab.grid() pylab.savefig("graph.png")
iter = 0 print "Calculating..." while 1: space.assign_dofs() sys = LinSystem(wf, solver) sys.set_spaces(space) sys.set_pss(pss) sys.assemble() sys.solve_system(sln) dofs = sys.get_matrix().shape[0] if interactive_plotting: view.show(sln, lib="mayavi", filename="a%02d.png" % iter) if show_mesh: mview.show(mesh, lib="mpl", method="orders", filename="b%02d.png" % iter) rsys = RefSystem(sys) rsys.assemble() rsys.solve_system(rsln) hp = H1OrthoHP(space) error_est = hp.calc_error(sln, rsln) * 100 print "iter=%02d, error_est=%5.2f%%, DOFS=%d" % (iter, error_est, dofs) graph.append([dofs, error_est]) if error_est < error_tol: break hp.adapt(threshold, strategy, h_only) iter += 1
#! /usr/bin/env python from hermes2d import Mesh, MeshView from hermes2d.examples import get_example_mesh domain_mesh = get_example_mesh() mesh = Mesh() mesh.load(domain_mesh) #mesh.refine_element(2) #mesh.refine_all_elements() #mesh.refine_all_elements() #mesh.refine_all_elements() mview = MeshView("Hello world!", 100, 100, 500, 500) mview.show(mesh, lib="mpl", method="orders", notebook=False) mview.wait()