From 76e89eff441b99b929abcc9735bc8fe6132594a8 Mon Sep 17 00:00:00 2001 From: ksagiyam Date: Mon, 13 May 2024 16:29:12 +0100 Subject: [PATCH] benchmark --- benchmark.py | 309 +++++++++++++++++++++++++++++++++++++++++++++++++++ mesh_s.pdf | Bin 7897 -> 58606 bytes 2 files changed, 309 insertions(+) create mode 100644 benchmark.py diff --git a/benchmark.py b/benchmark.py new file mode 100644 index 0000000000..8ceb3a3516 --- /dev/null +++ b/benchmark.py @@ -0,0 +1,309 @@ +import numpy as np +import matplotlib.pyplot as plt +from firedrake import * +from firedrake.pyplot import triplot, plot, quiver +from firedrake.cython import dmcommon + + +L = 2.50 +H = 0.41 +Cx = 0.20 # center of hole: x +Cy = 0.20 # y +r = 0.05 +pointA = (0.6, 0.2) +pointB = (0.2, 0.2) +label_fluid = 1 +label_struct = 2 +label_left = (4, ) +label_right = (2, ) +label_bottom = (1, ) +label_top = (3, ) +label_interface = (10, 11, 12) +label_struct_base = (6, ) +label_circle = (7, 8, 9, 5) + + +def make_mesh(h): + # points + # 3 2 + # +--------------------------------------+ + # | __ 9 | + # | 11/10 \8___________15 | + # | 12+ +7__________| | + # | 13\__ /6 14 | + # | 4 5 | + # +--------------------------------------+ + # 0 1 + # labels + # 3 + # +--------------------------------------+ + # | __ 7 | + # | 8 / \ ____12_____ | + # 4 | | +6__________|11 | 2 + # | 9 \__ / 10 | + # | 5 | + # +--------------------------------------+ + # 1 + import netgen + from netgen.geom2d import SplineGeometry + comm = COMM_WORLD + if comm.Get_rank() == 0: + geom = SplineGeometry() + pnts = [(0, 0), # 0 + (L, 0), # 1 + (L, H), # 2 + (0, H), # 3 + (0.20, 0.15), # 4 + (0.240824829046386, 0.15), # 5 + (0.248989794855664, 0.19), # 6 + (0.25, 0.20), # 7 + (0.248989794855664, 0.21), # 8 + (0.240824829046386, 0.25), # 9 + (0.20, 0.25), # 10 + (0.15, 0.25), # 11 + (0.15, 0.20), # 12 + (0.15, 0.15), # 13 + (0.60, 0.19), # 14 + (0.60, 0.21), # 15 + (0.55, 0.19), # 16 + (0.56, 0.15), # 17 + (0.60, 0.15), # 18 + (0.65, 0.15), # 19 + (0.65, 0.20), # 20 + (0.65, 0.25), # 21 + (0.60, 0.25), # 22 + (0.56, 0.25), # 23 + (0.55, 0.21), # 24 + (0.65, 0.25), # 25 + (0.65, 0.15)] # 26 + pind = [geom.AppendPoint(*pnt) for pnt in pnts] + geom.Append(['line', pind[0], pind[1]], leftdomain=1, rightdomain=0, bc="wall") + geom.Append(['line', pind[1], pind[2]], leftdomain=1, rightdomain=0, bc="outlet") + geom.Append(['line', pind[2], pind[3]], leftdomain=1, rightdomain=0, bc="wall") + geom.Append(['line', pind[3], pind[0]], leftdomain=1, rightdomain=0, bc="inlet") + geom.Append(['spline3', pind[4], pind[5], pind[6]], leftdomain=0, rightdomain=1, bc="circ") + geom.Append(['spline3', pind[6], pind[7], pind[8]], leftdomain=0, rightdomain=2, bc="circ2") + geom.Append(['spline3', pind[8], pind[9], pind[10]], leftdomain=0, rightdomain=1, bc="circ") + geom.Append(['spline3', pind[10], pind[11], pind[12]], leftdomain=0, rightdomain=1, bc="circ") + geom.Append(['spline3', pind[12], pind[13], pind[4]], leftdomain=0, rightdomain=1, bc="circ") + geom.Append(['line', pind[6], pind[14]], leftdomain=2, rightdomain=1, bc="interface") + geom.Append(['line', pind[14], pind[15]], leftdomain=2, rightdomain=1, bc="interface") + geom.Append(['line', pind[15], pind[8]], leftdomain=2, rightdomain=1, bc="interface") + geom.SetMaterial(1, "fluid") + geom.SetMaterial(2, "solid") + ngmesh = geom.GenerateMesh(maxh=h) + else: + ngmesh = netgen.libngpy._meshing.Mesh(2) + return Mesh(ngmesh) + + +def _elevate_degree(mesh, degree): + V = VectorFunctionSpace(mesh, "CG", degree) + f = Function(V).interpolate(mesh.coordinates) + bc = DirichletBC(V, 0., label_circle + label_struct_base) + r_ = np.sqrt((f.dat.data_with_halos[bc.nodes, 0] - Cx) ** 2 + ((f.dat.data_with_halos[bc.nodes, 1] - Cy) ** 2)) + f.dat.data_with_halos[bc.nodes, 0] = (f.dat.data_with_halos[bc.nodes, 0] - Cx) * (r / r_) + Cy + f.dat.data_with_halos[bc.nodes, 1] = (f.dat.data_with_halos[bc.nodes, 1] - Cy) * (r / r_) + Cy + mesh = Mesh(f) + return mesh + + +T = 4.0 # 12.0 +dt = .05 #0.001 +ntimesteps = int(T / dt) +t = Constant(0.0) +dim = 2 +h = 0.10 +degree = 3 # 2 - 4 +nref = 2 # 2 - 5 tested +mesh = make_mesh(h) +if nref > 0: + mh = MeshHierarchy(mesh, nref) + mesh = mh[-1] +mesh = _elevate_degree(mesh, degree) +""" +#mesh.topology_dm.viewFromOptions("-dm_view") +x, y = SpatialCoordinate(mesh) +v = assemble(Constant(1.0, domain=mesh) * ds(label_circle + label_struct_base)) +print(v - 2 * pi * r) +print(assemble(x * dx(label_struct))) +print((0.6 - 0.248989794855664) * (0.6 + 0.248989794855664) /2. * 0.02) +print(assemble(Constant(1) * dx(domain=mesh, subdomain_id=label_fluid)) + assemble(Constant(1) * dx(domain=mesh, subdomain_id=label_struct))) +print(assemble(Constant(1) * dx(domain=mesh))) +print(L * H - pi * r ** 2) +""" + +mesh_f = Submesh(mesh, dmcommon.CELL_SETS_LABEL, label_fluid, mesh.topological_dimension()) +x_f, y_f = SpatialCoordinate(mesh_f) +n_f = FacetNormal(mesh_f) +mesh_s = Submesh(mesh, dmcommon.CELL_SETS_LABEL, label_struct, mesh.topological_dimension()) +x_s, y_s = SpatialCoordinate(mesh_s) +n_s = FacetNormal(mesh_s) + +case = "CSM1" + +if case in ["CFD1", "CFD2", "CFD3"]: + if case == "CFD1": + rho_f = 1.e+3 + nu_f = 1.e-3 + Ubar = 0.2 + # Re = 20. + elif case == "CFD2": + rho_f = 1.e+3 + nu_f = 1.e-3 + Ubar = 1. + # Re = 100. + elif case == "CFD3": + rho_f = 1.e+3 + nu_f = 1.e-3 + Ubar = 2. + # Re = 200. + else: + raise ValueError + V_0 = VectorFunctionSpace(mesh_f, "P", degree) + V_1 = FunctionSpace(mesh_f, "P", degree - 2) + V = V_0 * V_1 + solution = Function(V) + solution_0 = Function(V) + v_f, p_f = split(solution) + v_f_0, p_f_0 = split(solution_0) + dv_f, dp_f = split(TestFunction(V)) + residual = ( + rho_f * inner(v_f - v_f_0, dv_f) / dt + + rho_f * inner(dot(grad(v_f), v_f), dv_f) + + rho_f * nu_f * inner(2 * sym(grad(v_f)), grad(dv_f)) - + inner(p_f, div(dv_f)) + + inner(div(v_f), dp_f)) * dx + v_f_left = 1.5 * Ubar * y_f * (H - y_f) / ((H / 2) ** 2) * conditional(t < 2.0, (1 - cos(pi / 2 * t)) / 2., 1.) + bc_inflow = DirichletBC(V.sub(0), as_vector([v_f_left, 0.]), label_left) + #bc_noslip = DirichletBC(V.sub(0), Constant((0, 0)), label_bottom + label_top + label_circle + label_interface) + #bc_inflow = EquationBC(inner(v_f - as_vector([v_f_left, 0.]), dv_f) * ds(label_left) == 0, solution, label_left, V=V.sub(0)) + bc_noslip = EquationBC(inner(v_f, dv_f) * ds(label_bottom + label_top + label_circle + label_interface) == 0, solution, label_bottom + label_top + label_circle + label_interface, V=V.sub(0)) + solver_parameters = { + "mat_type": "aij", + "snes_monitor": None, + "ksp_type": "gmres", + "pc_type": "lu", + "pc_factor_mat_solver_type": "mumps" + } + """ + solver_parameters = { + #'mat_type': 'matfree', + 'pc_type': 'fieldsplit', + 'ksp_type': 'preonly', + 'pc_fieldsplit_type': 'schur', + 'fieldsplit_schur_fact_type': 'full', + 'fieldsplit_0': { + #'ksp_type': 'cg', + 'ksp_type': 'gmres', # equationBC is nonsym + 'pc_type': 'python', + 'pc_python_type': 'firedrake.AssembledPC', + 'assembled_pc_type': 'gamg', + 'assembled_mg_levels_pc_type': 'sor', + 'assembled_mg_levels_pc_sor_diagonal_shift': 1e-100, # See https://gitlab.com/petsc/petsc/-/issues/1221 + 'ksp_rtol': 1e-7, + 'ksp_converged_reason': None, + }, + 'fieldsplit_1': { + 'ksp_type': 'fgmres', + 'ksp_converged_reason': None, + 'pc_type': 'python', + 'pc_python_type': 'firedrake.MassInvPC', + 'Mp_pc_type': 'ksp', + 'Mp_ksp_ksp_type': 'cg', + 'Mp_ksp_pc_type': 'sor', + 'ksp_rtol': '1e-5', + 'ksp_monitor': None, + }, + "snes_monitor": None, + } + """ + problem = NonlinearVariationalProblem(residual, solution, bcs=[bc_inflow, bc_noslip]) + solver = NonlinearVariationalSolver(problem, solver_parameters=solver_parameters) + for itimestep in range(ntimesteps): + print(f"{itimestep} / {ntimesteps}", flush=True) + t.assign((itimestep + 1) * dt) + solver.solve() + for subfunction, subfunction_0 in zip(solution.subfunctions, solution_0.subfunctions): + subfunction_0.assign(subfunction) + FD = assemble((-p_f * n_f + rho_f * nu_f * dot(2 * sym(grad(v_f)), n_f))[0] * ds(label_circle + label_interface)) + FL = assemble((-p_f * n_f + rho_f * nu_f * dot(2 * sym(grad(v_f)), n_f))[1] * ds(label_circle + label_interface)) + print(f"FD = {FD}") + print(f"FL = {FL}") + print("num cells = ", mesh_f.comm.allreduce(mesh_f.cell_set.size)) +elif case in ["CSM1", "CSM2", "CSM3"]: + if case == "CSM1": + rho_s = 1.e+3 + nu_s = 0.4 + E_s = 1.4 * 1.e+6 + elif case == "CSM2": + rho_s = 1.e+3 + nu_s = 0.4 + E_s = 5.6 * 1.e+6 + elif case == "CSM3": + rho_s = 1.e+3 + nu_s = 0.4 + E_s = 1.4 * 1.e+6 + else: + raise ValueError + g_s_float = 2.0 + g_s = Constant(0.) + lambda_s = nu_s * E_s / (1 + nu_s) / (1 - 2 * nu_s) + mu_s = E_s / 2 / (1 + nu_s) + if case in ["CSM1", "CSM2"]: + V = VectorFunctionSpace(mesh_s, "P", degree) + u_s = Function(V) + du_s = TestFunction(V) + F = Identity(dim) + grad(u_s) + E = 1. / 2. * (dot(transpose(F), F) - Identity(dim)) + S = lambda_s * tr(E) * Identity(dim) + 2.0 * mu_s * E + residual = inner(dot(F, S), grad(du_s)) * dx - \ + rho_s * inner(as_vector([0., - g_s]), du_s) * dx + bc = DirichletBC(V, as_vector([0., 0.]), label_struct_base) + solver_parameters = { + "mat_type": "aij", + "snes_monitor": None, + "ksp_monitor": None, + #"ksp_view": None, + "ksp_type": "gmres", + "pc_type": "gamg", + "mg_levels_pc_type": "sor", + #'mg_levels_ksp_max_it': 3, + #"pc_factor_mat_solver_type": "mumps" + } + near_nullspace = VectorSpaceBasis(vecs=[assemble(Function(V).interpolate(rigid_body_mode)) \ + for rigid_body_mode in [Constant((1, 0)), Constant((0, 1)), as_vector([y_s, -x_s])]]) + near_nullspace.orthonormalize() + problem = NonlinearVariationalProblem(residual, u_s, bcs=[bc]) + solver = NonlinearVariationalSolver(problem, solver_parameters=solver_parameters, near_nullspace=near_nullspace) + # Use relaxation method. + nsteps = 10 + for g_s_temp in [g_s_float * (i + 1) / nsteps for i in range(nsteps)]: + g_s.assign(g_s_temp) + solver.solve() + # (degree, nref) = (2-4, 2-4) with mumps work. .1 * gs + # (4, 5) has 280,962 DoFs. + # u_s.at(pointA) = [-0.00722496 -0.06629327] + print(V.dim()) + print(u_s.at(pointA)) + assert np.allclose(u_s.at(pointA), [-0.007187, -0.06610], rtol=1e-03) + else: # CSM3 + pass +elif case in ["FSI1", "FSI2", "FSI3"]: + pass +else: + raise ValueError + +if mesh.comm.size == 1: + fig, axes = plt.subplots() + axes.axis('equal') + #quiver(solution.subfunctions[0]) + triplot(mesh, axes=axes) + axes.legend() + plt.savefig('mesh_orig.pdf') + fig, axes = plt.subplots() + axes.axis('equal') + #quiver(solution.subfunctions[0]) + triplot(mesh_s, axes=axes) + axes.legend() + plt.savefig('mesh_s.pdf') diff --git a/mesh_s.pdf b/mesh_s.pdf index ed78bf50ac165ff90d640db099e090cad1d2048b..7da77a1993178ccd0f349bb5ab62bb6295c683ee 100644 GIT binary patch literal 58606 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 E0Od^6A^-pY delta 2797 zcmZuvc{tR2AGJ+tgi@1Gmh4%YeT=P9COcWP6r*%QWtbt&aQ%{$H1;9;WEx9xvy_mF zh-60)&D|DCv}_>@TN`d0Ie&1`c#>6}v`ud?YNM-LdEXu^yMWu- zS=(OkTW`6&1}5uTn4NYak9*Bs53#YswYu>Lo;-2x0ZZX1gn!R|X`b_m)ta%NCfemw zb?zB#=AJcx6vFosr12`fp61xu_KWw-q>B1mqR*+y$cF*%CJ8#AJQiWj?7#;SdH)Gz z2VTig;gtIP*FG?W5X-W~)V29scPd&HOCb%`NXMCGqe_u< znKjxQ74OhsdnKcN+JcW`&l+sRg=9v0^|*lR?{pWYi1q5?f_p7cZ(7=?qMWB{1&GOz z+Ph@6{h`rzc^PoUhrbMYg}Tzs5*;T$hLz@DN+gs<;!34cO>-RroFxs8zXg=W-(oL2 zVxDwoWVc6VF($4VxcIl^bQt+Q*(`>Ybnh065$ zXRN>XZ!DZl9KVUemX!>RTNMagQTstg`&ZqC?T9q3XvVQZFEhG{U_ zq&HU|?}>I{e5?&5>n7^A#SpkVwLvS#v>K$w{2bj9!S8SLuMCvt4@@uDzeN3gRH8-} zzm6)NSpXwsbwp<|#{P13gY(7waM<<{U|riRvqz-@namO=KuE)m)m-#9iy)n$a7Ih% zXX=*PT+Y<-osL0usk3>ZpS_Nc6qGsPY)af70L2o7Ep`8lozIKBCYq_@oL8bU+#b4f zP-Pu-y~oCuJ$In}+h>B#LQMZoyx^Ek-PkG%YN@TeubPvj2_@APi-e zRG)&`aZIx=cZwqI$}IxhXj~HdBC+t-=g$)~z{wYIWNTi^3u-!7hTs7j$ve}>tD0Hu z0?IN^;6RH!m^1{%vAG-VdfiMSYVkUOa|(G;^|QD(DOtat3R(u%h$NNq=&n$od1Owg zxa9(@SP7z*A(+JnvG>dXZVMS2+Ypo$T46Zv@ZUPR6^A#6mkv7}KKv>C?on44yBXA^ zQm(~tf_A*=^u4T$odR6Jnc#!qJ99f(v^3je^U1Rlf&|$Gi4>>AzwYied z<@6>U1x;|>-@83+Jj7t0vfDUJHApY@BENWY%#*$))3BGKrN&bVRI5a8w^~L&5h+^J zUZ3pr3pJ(mo1cjI?O}k90CS2*C(Wl(5I8&7G|zhdl2AW^i3>H&%rZG6!)G;ZVf{>s zviYb>%AVUQK5YIo;!59`c}sf_l!O)WG)F34l6$#x|mzcV;(4ti3aL(9@)bpO494tk5qxZG@W!k<#9 zNuGX)rE^M!!@}D&1Aq44y<{A>_K0-oR;lxL##w?@`sTpOx%$2x(YmJl5Qf3-C{9oCNezNmZ+9#6(H!a{`$n zry88;{+W$<0snYJB38fl<~5T{dZ%{|tjJXpjY(&{UbeL~bk~?h{D6mKHhPGfOy~sb zb;^RGV&Po=q+D2%FU1A@1w0`a*2iyo|6rF-uAnoNjX$W$xpv)@x|ouB zm9CEMhPUy+a^pqx2u49Qkue_b&e~`r<~pfIBSW~ zaqd~c)6wf@FOK6c`)Pl9rletUTTih!YDMFDcepTKud?sE2U{Vk&q?n%-shXxY_QL| zO8r2yIuOt>x}IT+bE?2~J4I)gbL$~za+|b>6=*=OdlqQ(C?R-Mk^9TwnJeEh8yY|+ zu{~yIi=!_wIWb~PJgSJGB#S_k*ke~Xk5G1tUWYIvCOQ>_8)sXePe_8`iCn;Crra! zglF&p0qiT9wwuLSm@L}L$^rY