def test_example_08(): from hermes2d.examples.c08 import set_bc, set_forms set_verbose(False) mesh = Mesh() mesh.load(cylinder_mesh) #mesh.refine_element(0) #mesh.refine_all_elements() mesh.refine_towards_boundary(5, 3) shapeset = H1Shapeset() pss = PrecalcShapeset(shapeset) # create an H1 space xvel = H1Space(mesh, shapeset) yvel = H1Space(mesh, shapeset) press = H1Space(mesh, shapeset) xvel.set_uniform_order(2) yvel.set_uniform_order(2) press.set_uniform_order(1) set_bc(xvel, yvel, press) ndofs = 0 ndofs += xvel.assign_dofs(ndofs) ndofs += yvel.assign_dofs(ndofs) ndofs += press.assign_dofs(ndofs) xprev = Solution() yprev = Solution() xprev.set_zero(mesh) yprev.set_zero(mesh) # initialize the discrete problem wf = WeakForm(3) set_forms(wf, xprev, yprev) solver = DummySolver() sys = LinSystem(wf, solver) sys.set_spaces(xvel, yvel, press) sys.set_pss(pss) #dp.set_external_fns(xprev, yprev) # visualize the solution EPS_LOW = 0.0014 for i in range(3): psln = Solution() sys.assemble() sys.solve_system(xprev, yprev, psln)
def test_example_07(): from hermes2d.examples.c07 import set_bc, set_forms set_verbose(False) mesh = Mesh() mesh.load(sample_mesh) #mesh.refine_element(0) #mesh.refine_all_elements() #mesh.refine_towards_boundary(5, 3) shapeset = H1Shapeset() pss = PrecalcShapeset(shapeset) # create an H1 space xdisp = H1Space(mesh, shapeset) ydisp = H1Space(mesh, shapeset) xdisp.set_uniform_order(8) ydisp.set_uniform_order(8) set_bc(xdisp, ydisp) ndofs = xdisp.assign_dofs(0) ndofs += ydisp.assign_dofs(ndofs) # initialize the discrete problem wf = WeakForm(2) set_forms(wf) solver = DummySolver() sys = LinSystem(wf, solver) sys.set_spaces(xdisp, ydisp) sys.set_pss(pss) xsln = Solution() ysln = Solution() old_flag = set_warn_integration(False) sys.assemble() set_warn_integration(old_flag) sys.solve_system(xsln, ysln) E = float(200e9) nu = 0.3 stress = VonMisesFilter(xsln, ysln, E / (2*(1 + nu)), (E * nu) / ((1 + nu) * (1 - 2*nu)))
def test_example_04(): from hermes2d.examples.c04 import set_bc set_verbose(False) mesh = Mesh() mesh.load(domain_mesh) #mesh.refine_element(0) #mesh.refine_all_elements() mesh.refine_towards_boundary(5, 3) shapeset = H1Shapeset() pss = PrecalcShapeset(shapeset) # create an H1 space space = H1Space(mesh, shapeset) space.set_uniform_order(5) set_bc(space) space.assign_dofs() xprev = Solution() yprev = Solution() # initialize the discrete problem wf = WeakForm() set_forms(wf, -4) solver = DummySolver() sys = LinSystem(wf, solver) sys.set_spaces(space) sys.set_pss(pss) # assemble the stiffness matrix and solve the system sys.assemble() sln = Solution() sys.solve_system(sln) assert abs(sln.l2_norm() - 1.22729) < 1e-4 assert abs(sln.h1_norm() - 2.90006) < 1e-4
from hermes2d.forms import set_forms from hermes2d.examples import get_example_mesh mesh = Mesh() mesh.load(get_example_mesh()) #mesh.refine_element(0) #mesh.refine_all_elements() mesh.refine_towards_boundary(5, 3) shapeset = H1Shapeset() pss = PrecalcShapeset(shapeset) # create an H1 space space = H1Space(mesh, shapeset) space.set_uniform_order(5) set_bc(space) space.assign_dofs() xprev = Solution() yprev = Solution() # initialize the discrete problem wf = WeakForm() set_forms(wf, -4) solver = DummySolver() sys = LinSystem(wf, solver) sys.set_spaces(space) sys.set_pss(pss)
# Below you can play with the parameters CONST_F, P_INIT, and UNIFORM_REF_LEVEL. INIT_REF_NUM = 2 # number of initial uniform mesh refinements P_INIT = 2 # initial polynomial degree in all elements # Load the mesh file mesh = Mesh() mesh.load(get_example_mesh()) # Perform initial mesh refinements for i in range(INIT_REF_NUM): mesh.refine_all_elements() # Create an H1 space with default shapeset space = H1Space(mesh, P_INIT) set_bc(space) # Initialize the weak formulation wf = WeakForm() set_forms(wf) # Initialize the linear system ls = LinSystem(wf) ls.set_spaces(space) # Assemble and solve the matrix problem sln = Solution() ls.assemble() ls.solve_system(sln) # Visualize the solution