From 9af683777e6c29636a328705286a39e7bc42e9e6 Mon Sep 17 00:00:00 2001 From: yiyuef Date: Fri, 6 Feb 2026 17:58:04 -0800 Subject: [PATCH 01/17] Add 2D cylinder channel-flow example and documentation --- .../Navier-Stokes/Cylinder-Flow-2D.md | 161 +++++ .../cylinder_flow_2D_output1.png.png | Bin 0 -> 29061 bytes .../source/examples/Navier-Stokes/index.md | 1 + examples/cpp/cylinder_flow_2D.cpp | 596 ++++++++++++++++++ 4 files changed, 758 insertions(+) create mode 100644 doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md create mode 100644 doc/sphinx/source/examples/Navier-Stokes/cylinder_flow_2D_output1.png.png create mode 100644 examples/cpp/cylinder_flow_2D.cpp diff --git a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md new file mode 100644 index 00000000..9c036222 --- /dev/null +++ b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md @@ -0,0 +1,161 @@ +# 2D Channel Flow with a Cylinder + +This example simulates a 2D incompressible channel flow past a cylinder-like obstacle (implemented as a masked no-slip region) using MOLE mimetic operators and a fractional-step (projection / pressure-correction) method. At moderate Reynolds number, the solution exhibits a wake and may show vortex shedding depending on grid resolution and time step. + +## Governing Equations + +We solve the incompressible Navier–Stokes equations in two dimensions: + +\[ +\frac{\partial \mathbf{u}}{\partial t} + (\mathbf{u}\cdot\nabla)\mathbf{u} += -\frac{1}{\rho}\nabla p + \nu \nabla^{2}\mathbf{u}, +\qquad +\nabla\cdot\mathbf{u} = 0, +\] + +where: +- \(\mathbf{u}=(u,v)\) is the velocity field, +- \(p\) is the kinematic pressure, +- \(\rho\) is the density, +- \(\nu\) is the kinematic viscosity. + +## Domain and Initial/Boundary Conditions + +### Spatial/Temporal Domain + +The computational domain is a 2D channel: + +- \(x \in [0,8]\), +- \(y \in [-1,1]\), +- \(t \in [0, t_{\text{final}}]\) with \(t_{\text{final}}=\) `tspan` (default in code: `tspan = 32.0`). + +A “cylinder” is represented by a masked block of cells located near \(x/L_x =\) `cylin_pos` (default `1/8`) with a size controlled by `cylin_size` (default `1/10`). Inside this mask, velocity is forced to zero (no-slip). + +### Initial Conditions (time-dependent) + +At \(t=0\): +- \(u(x,y,0)=U_0\) everywhere in the fluid region, +- \(v(x,y,0)=0\), +- and the obstacle mask region is set to \(u=v=0\). + +(Default in code: `U_init = 1.0`.) + +### Boundary Conditions + +Velocity boundary conditions: +- **Inlet (left)**: Dirichlet inflow + \[ + u = U_0, \qquad v=0. + \] +- **Outlet (right)**: zero streamwise gradient (Neumann outflow) + \[ + \frac{\partial u}{\partial x}=0, \qquad \frac{\partial v}{\partial x}=0. + \] +- **Top and bottom walls**: no-slip + \[ + u=0,\qquad v=0. + \] +- **Obstacle mask**: no-slip enforced by projection back to \(u=v=0\) in the masked region after each time step. + +Pressure boundary conditions (pressure Poisson step): +- **Outlet (right)**: Dirichlet reference pressure + \[ + p = 0. + \] +- **Other boundaries**: homogeneous Neumann + \[ + \frac{\partial p}{\partial n}=0. + \] + +## Mathematical Background + +“Flow past a cylinder in a channel” is a classic benchmark. In this example, the cylinder is approximated by an axis-aligned mask region (immersed-boundary-style enforcement by zeroing velocity in the masked cells). This provides a simple obstacle treatment while demonstrating how MOLE operators can be used to build a full incompressible flow solver. + +The Reynolds number is defined using a characteristic diameter \(D\) and inlet speed \(U_0\): + +\[ +\mathrm{Re} = \frac{U_0 D}{\nu}. +\] + +In the implementation, \(D = 2\,\texttt{cylin\_size}\) and \(\nu = U_0 D/\mathrm{Re}\) (default: \(\mathrm{Re}=200\)). + +## Implementation Details + +### Projection (Fractional-Step) Method + +Each time step advances the momentum equation and enforces incompressibility: + +1. **Advection evaluation** + - Nonlinear convection is advanced with AB2 (Adams–Bashforth 2), with AB1 used on the first step. + +2. **Diffusion (Helmholtz solve)** + - Viscous diffusion is treated with Crank–Nicolson, resulting in two Helmholtz-type sparse linear systems for intermediate velocities \(u^*, v^*\). + +3. **Pressure Poisson solve** + - Pressure is obtained from the Poisson equation derived from \(\nabla\cdot\mathbf{u}^{n+1}=0\): + \[ + \nabla^2 p^{n+1} = \frac{\rho}{\Delta t}\nabla\cdot \mathbf{u}^*. + \] + +4. **Velocity correction** + \[ + \mathbf{u}^{n+1} = \mathbf{u}^* - \frac{\Delta t}{\rho}\nabla p^{n+1}. + \] + +5. **Re-apply boundary conditions + obstacle mask** + - The solver re-enforces all velocity BCs and sets the masked region to \(u=v=0\). + +### Mimetic Spatial Operators (MOLE) + +The spatial discretization uses MOLE operators: +- Divergence operator \(D\), +- Gradient operator \(G\), +- Laplacian operator \(L = DG\), + +along with interpolation operators to map between cell-centered and face-based quantities used in flux evaluations and in the projection step. + +### Output Products + +The example writes: +- `U_final.csv`, `V_final.csv`, `p_final.csv` (cell-centered fields), +- and an image of the final speed field: + - `cylinder_flow_2D_output1.png` (this page embeds it as a figure) + +## Running the Example + +From the build directory: + +```bash +cmake --build . -j +./examples/cpp/cylinder_flow_2D +``` + +## Results + +The final speed magnitude typically shows an acceleration around the obstacle and a wake downstream. At \(\mathrm{Re}=200\), unsteady vortex shedding can appear depending on grid/time-step choices and the obstacle mask representation. + +```{figure} cylinder_flow_2D_output1.png +:alt: Final speed magnitude for 2D channel flow past a masked cylinder obstacle. +:width: 85% + +Final speed magnitude field for the 2D channel flow with a masked “cylinder” obstacle. +``` + +### Validation / Analytical Solution + +No closed-form analytical solution is available for this configuration. Practical validation options include: +- verifying that \(\|\nabla\cdot\mathbf{u}\|\) remains small after the projection step, +- comparing qualitative wake structure and shedding behavior with known channel-cylinder benchmarks, +- and performing grid/time-step refinement studies. + +--- + +This example is implemented in: +- `examples/cpp/cylinder_flow_2D.cpp` + +#### Variants + +Possible variants (not included by default) that are useful for exploration: +- different Reynolds numbers (e.g., \(50 \le \mathrm{Re} \le 500\)), +- refining \(m \times n\) resolution to reduce numerical diffusion, +- replacing the rectangular mask by a more geometric obstacle treatment (if desired). diff --git a/doc/sphinx/source/examples/Navier-Stokes/cylinder_flow_2D_output1.png.png b/doc/sphinx/source/examples/Navier-Stokes/cylinder_flow_2D_output1.png.png new file mode 100644 index 0000000000000000000000000000000000000000..5dae227cd2c552ff21b2e9d5553ef996833b8e7c GIT binary patch literal 29061 zcmYIQ1yCGKu)aGECqaXSAi@36;1WDofIxu5-Ghfi4-#C0TMh{tEcoGYxE&TGxLc55 zf#5v;SM};u?d2i^yr zKUP2wZKcqplW0i`*pGRy z8|jCgpkEKmsQ*7YKCEH~9{meE@>{uC4!Z3R^52K9T=%_dKN!+yto^gv_;u%Q>1+-AS#qWWf2+B7+*WYB1R;7iCCJQ0;l z3ZKH6tK#lA#x6mR4_Qs@V3KyY*Xk@hR2tNzKFxP|kPFe2ym{~Uy>cd&)3HXKI6lQ074z`g`Gxza!Kqd!SrFB2 z^Td{<8b4R#V!N^^OgG0fet3{q#VO~cQipCt>=@qzJf`vSG$~`2hn4X`Y}v%&7vcRX z;l1=fOdr>V@aLv<)}~g=Zk5u}aG7L8Rgv1DpCCoa5$4z{otjFv3=>4&ww=I{5c zh>Q}C;}YZ+Ff)bCoS~>5Yu>@@<>=*h+Y}?4Vr_{mOHkU%L6SrUO}oUdeDQSj6nmib z*@4K|v^dS(`3Q1=y^f-@CMgu5;C(g zQOrc+{6hPz=N;N(#4pyB4hJ=A$d8)W#htH zWaV5u=(t$2V&V|vTYjzpR6#^1Lzl)bk}~u)%c4|?9;jA-a<~H*tJtFRsEQNL!UhNC-u!PS!in@?-dA4kzN?>{E669 z%3#Nl#yIT-V8Bg3Op~z!8Xzz?0oy&RI^VuuY{!At%$33assy9`tBu(McvN(DZu#l% zMTNxnV5XO>wDLclB0avD`zb#ET4S2|fb06(ensfhX0%8p7ngoDx0!i{ZNi@;6=u@% zOQ)Nd9MaN^n6sW&%T`?>&lW(2NIOoS9oAC~s_Zo5mpQ?`m4|iQ^-oWo{6w#quh6ph z3M&Hj=}k{~S1%N}&S_ETK`F5Z*zsB5ayLSX-}X>o>jtLzagRc}VGP0|ASAh!Ga`LO z$m?YyHQD-0SY{~%Xxf+Lgag+F_Uu`L3dvf7{Prrc{Lum^%EGRYVM<*6%SE0r#fHp{ z_hwh?VEm5d?HDy{GNXJEasHUm*{o$Av90TnOOWC)SFY<(|j))I#cTDBXJ!&mg z{g<#B)mp^sJ@b|C?+Ysf9rYxUW@dmPXrIMfu*2kfBl`HfQ);&Wk z41QYRiP>QmfK@M@i&mq>H|$^PfEywHDBjzqOC)JTG=M_!QO(%q7&fH?N?gqnr?Yea zfHXr7s6?!zqH9CfMSr4APSXl>d9`s&Y`t8wL&r$fu@3U~fd6thr}f?<0RBze>|H=r zlMm7ke(a4*qC3pIFdJ5nNJdS#?WRD`C57$7vG{p;vDtNqb?U@s_k|<$8^Ig}yX|Fx z$eryzb(YIMS+Pvc-~w|tWBN0HK^C01PqU#J>)_R2j#+ljypGQ5ds4lJBKVDxmP6Wn zA&kNmNlcl0PPHj=r-p-YXZ{xB>)-7@yFOu~34g=}4gpZvrnJ2mV&;CIo z9mO)Ll}E-mm~Fr<*`H?Z?_f3pZlLtZMc}(rb=5v0MLR(@Y zmCyx{RP(koV%@OvU6N;E8oJcC?HtFB-1SCmyWENPjS<-YXBTX5>BoQL&CdERrw;Ho zKZiF+|JQ;-^q^?OC31=*N$uPfvsOr7=vw;(dm)g#fH3PZK5CKi-(b!k+`8p&7O8(@ zvSnB7yd%v=K;1UM_?6C~(YAhr104~x*qsu;y2g-WJ_{KE6PZ)3Nq5>hn%DdeVzp(l zCI8~>ixxO?N+_<`@$++(?8?5BNX&(l#EJ%I4)$}6dq;J=me?UP?Hd3Hs4XJrGL7DX z{g=Dux^R1hnK{|SzAcDyH&*y4{`F{aHRu$?e$`D~pJo?~+_ObH`_BLIvRVb3cSbo` z_9zbR2-EO>S2Y{uy@2=NE>b6`L&{Jh!#ECLGmeIkUwn6^nNRJr6KtK)rIHO0TBWl% za_KMZ8k639wZam>*=a=Zowjsx13R&CpP)|F05YTmAu`9*TR@KMAv%^=GT7uypCicc z;uc-ZM3Zi%@7k2bUIkqQ3n`%!6XKq^bGdGgdLG zRdg22i^VLwd{lp$u|hvbOceWFrz}{X{Z(dQOQD3PKxOZX=1oFG6B|W&`) zdM#S$iO?e9tv)3szny%mQ>I*8dIwmVkOJofIm~6}O`)*18CfDtoAuutRIFzN#RT6y zTh{0E5NZp!p3sxiE{3#nXLcZ8Zr|aQIHf-+$SBba6kQ_&}A1a`g{AM5Q9KZ9G8B?#kJV)3;|+Yoz7#%>e3pOP`+> zN9VXd-|lZ&B?{zj8O(ZrSEae4J=Pc#%g*H)#tZzxgI8mTwSCeZYz0)0s@1ZTF=?Gr zInm~5Tzs9UlxpK_yN6lC5l*2#HfM3)0nGkalU6e9qhjHHDmGlnV~l^>tWrV7C817& zGw<*{aVE)h%L8HpMEYYEZ(}0KJ)ml36uLRdT?p&QOE3A7)f#-#(JjK~C*T1lR#dI~ zNmMQS5KCIlLe->+Vk!BNz#SJ)^%l~G65c)5J&JAU-?wlmac{dM)-Iz79XFOC8>76U zP98b@3Ff~iQ9C91g#-E3`W-e4!}xdObFJXlFM* zP6SBYCIykl>f+0qy{`X1>eYp*;I+O+e5TR zvufKdQ2`l{AgRMkiS;$x<2i4WcC^#;+}obvB<@;v{NWz)R%$nv5S1ufqxI%@(0@8q zpVs`W97fX#QFG(FzsUoyl?)%XQ)Io6xMeGSgD=qN9ne3bGdPm?cmw-vJ^XDBm2>k; zJsk{1z})Awg*WcC@!V$IE4x&r?|5=~qvc>fOl*-2#n;iQHFl9&bP~X_P$*VJ&Lz4_ zP1Xn4(1Xd9W;%gyu-RmcQFZ<{yIKdsa8XADPV1yg+)yududRblP7WaB3SRidx1ifn zbjuG7?_UGY_et-Ez)yxuTqrX1WtyIn#v4L2bj1g2@zp>l20U`Y!Dh}WqB{af6t^6I z?Ko#%pK##{r0B24^F0Af-X@SHV>a3d-zqQvAa2bwj_@d1D^`_BN$0Mi+F*d%v1w7k zaJ7p*b~!9*m$_%Ev1EXdJjjsY{>)@h-it`CoM(AQ8Yj_X=ix7gQlBd9z=Avr3UjPP z;?s**4N~9X^Glc>Mv}7efb6U`r&dRw?*8Z!C`%t0!d~^g*3P$~R#^KI!t8p(Ws!aF zj5z6!o_gCRs}w*^?3IdQ((LZl?^R9;H&UCs1e8?4DMe}xvQX_FOeZB0RLN1c2!0qA z23hfHPlIL5SA&I;SA{-(h2|~I;?v2->sGAer1x{$Z>Q+^JgCRkCVcREQ7HJxXkW5MPi}$O;4Bgt`;`T4~e;{jasZN-_41{w3gAK8%6! zF#D@zVmdv6fl~I{S+4RNinuZoN)|^ysdgn#Te(zZs!`GhlJ5Y#-b+09A}ns_5UfyE zk2;ly=2pHhQH5BqBG-rQC{lj&jxda=n33r`57fKQEMBx`tXj?29lDg=!ai7YyJ-sj zGB_mQ&_25Foygmhrep6{l(~nw`%RWH8_k8dA3>{hO7h)x&8mWrAJCduh16vc+_#pVwG!??q~i#*xs?;mp23~ozoh`fFd2wiVp`SmywPcR&nuMIY_dK8 zFLD&$!TPH15h7UT>ikuGTzGDs6#Q1hXbogfIh`1nOA=gyM(E*Rr-qkDTe-_-C78E zF-h}NNM5M?B3GJyfwpL(dnX`DhbR!MDvP}V85p$L^t)G7Hd~NnVIpG!!(T7rHb~** zFXh~|VoPWaw1$WGTZCx3Vh>F4s#k(B#o8SNKI58uLo&8CLWE)0Lkbt7*gS9(;YWQM zdv$%vTiavYTb9Eav5jP7v&{4; z^XH5rmKM z>(Q#csm^M2mmCCjc^Sz7iOarTM{@@4Ry}pZ$0eoGKU}R25&Utm* zzH}H2Yl_c& zcq=gOWd1Qx!+Ntc$?vdlnUR+9b_tKD(G@^sJV_PC{esmMFsMpHHJ()Aa>AdefHE>3 zW|qONG;#Iqf^_#X4@ga_`1qt4oFZoI|6eEoLI$m{j-v*!<6iOdvt@r{xuD;x1Y z>vPEDRj(eVyRKqs0VP9bjO>2me8e0ctIT*}4%C%}R1LctLoJYYZ*$OuC;3<>$f7t= zY4L&z{)$=O$GJL1^rjD86z@1pK^;a%qPm}$nRTjw8Csc3>($2l!;l0I|j=#J0a%T?>*v@>B z!_VOozfP50=U$!G=Q65Q9WVY|I;7s{O|3lIVrODUz;l=>Raq3f^=O0BcOh2i3_n8Q zPHxt}$f;DdAq@?S0Sv2S&&u{h_0R6+K_`_3O+|7Mj_IM?MhQu_2&DQEF|Iq3Awq1h=G7^Kc z9I{|oQLIs%rm)^XYuT5MDdj`w;ie~#-mh&>X`%*+PwFX8BG7^*y|vK?m!9>=yVs*2 z9anE!yg{UK93$$8OR4XKo#_WjW#Pbkrt(?4lnRewjvcT7W~ym5_bSy7;cn8m3-RkP zFrO|!qkl}44|M3}I%iG!qr)U`J(SR#dzDalHSwa4!3<-gl4`V^aMm$+}vwxzTz$5?^Ao zLAr$waP)gIliLP_VKbuj!9zNgCD0xgH%ARC+E>=gdE`*|#;%|x4yd|llBjd6^#JyC z;|}9)*07Tn=kdPbwweD(6bg z+9lDKe7K9NynUB)40(c&<~TtZpr@N=PyZ4vfM(Z4H)^%Eb^u8esayroCeF6cX8Y%h z3cr(R(r0U_*9Tt?su|@2=IUFClq+}nGb^gvJ(Q0Pb?4S&mT_HrHuFBIoer1it9Hp1)fvMxEQBN8sqFSUp!Nu^9qhB!2|%02&CP-Q$1p;Gq?*() zw9h#NSw<7cZ~o&I&G_evLx;>Jmt%X7j=)JBsG*UrszESFE?EsL-6fV|*WCIm7Y(Ga zHdNj)8q@1Dm{b6PBB@=^Fc#57sZ|`RW%*?K7z+emO!Kv_0B?Z`=uUYSKHov7m2>SJ z>|D~gQ&Qf-5~|`=E+YbN6W*ntRhZ8)?1wa}sw^0vI%a3wu@!mSTL8=joiPhRcH5BS zz^EB&N#5CBWN0HMu5c*H@%PKFuOVSPcWkBd1onprb!888>UtT-j>@e*hg0%1n- z0Uft~OC(nkv{n*O*Rn5Q{Tp+tm;6Q>)kbIA|I< zggnlgr`=7UE6ikAQk-&?#FRfZ-GcJ3Jb4bCX`F64CGe8x_W1RcbqF~9O<0BA2aKhM zDokR7fL@`RJ$La6RNxxjkC~- zEGaQZ>x)G8bB$HyC}$<3dPia8+5V<*&2S91n%oz&&AkENUqgA^j`!cC#V`#G>v{*5e+M-L#J*1rw&wZ}Z7TvqVVD#pW-$M-7A>G}YZJq4 zrGpG9mvJR9HD9xwJ133NjWdZjV#;j)Qufy~@cAtunbx!bPFZMhJ_N+OM8;Sd?PL~n z3Z+bg48?wV0cA$-)?6BzNOYj$9WVoBAwXVY~@%c^|l3!GPN^KI;Pdjh6oPoLnb z<_O5{waV^H_eta+ZLFA>-y_O6*ktXNT_ksdAGDNx+Yt)o2aL+f_#>TUk?!zl!m+r( zJW;`Ea0>mOVq$_EHS7+-EbFJoGne;Dx??hDfN`s*D1Vz``U5kMu4YwgM$K_E0flL! zf?1aDJ;7NXiELTNH9Z^~Vyp9eM&+&-nd$D^$=~ptru52j(Oh8hQZr}qP*fRx^N@{x zONzTht$b}Qo{^pzIpTnX?Yl5tFtgQfkzwm{X6E#e(D$&pK}T(HRU_?=AKzP9&TrE%F|yTZ+7$zApbc?NxA3^-$+Lue0e2i;+kvipqNZ zc8XiB!J0D%?o=#8XyXn(Rs={C0Dvf=08|0FN0Y9il{qIp$4mydx-HD#S2nXDqy17T zo77+HbS>RZO})A?0^ZJLv&3k(ZYKQ%CrdO4-^S z*M;2FNJRcE=!a`IMGc)6gdI<^2>RfsUaQw;kQ|5+;b8aq6U$Y+JEh~A@f=U?Wul;U z^f8G1C+IC>1HVE_AG^MO(#v81>0NYb$B)f3PY&f`=ApOvu2{!E%bH?DCoD}1xSTB1!pnS!a z-voH7a))Nv2{mNnEEDcahDBT%z4d-yi=STjrJ~rjM1|u9okq>5_MUY?IV>qFhNZ`! zMEv`0l#?mf5|J9TAq~w8+e>It6J<@nJR($+R<;{Ghxpw5F@zSR_Rdh6J_BfOY>gE& z7r3rw{NY;aM`9p-3M%;H+sF~uPo)(SHJgdrJj|)P7*mw-%4F2VZy4TX*tA)vs!$C zmy=uIGh!m__y)l{dXlk*cBo_cZ*Q^mtk%mjQwJzXhS~K`c15*!NSXQ*NUGKMXD4@@ z&^KMwLtHdXsCh$cPqTHSg3Grzv^sw>L)Q!_FT|_csZu0vU2;Aemvdv%TmMyAFSNNk zCVYTsR*h1YD*d*=k4za8oH(RGlccO;eT9=WOlzP3JOkLRclNrLjakUb>QFltB2t4d zpO)|aTc;bOHzuaK=KgrmDTm1)J5>#S8rw48Sm4pj%sZjC=%?rB&;`_3z*P&kA^7Mb zwz~*mxdc#k21yQhGjHhLaJ8DmQs`?DhL4`=DOTh3>5O5;-5>ytFwTW=k`X}z*Y(`= zWewUTEM%d{JVU@b*SWZXp@K?TG-xmOG0P;MKDsE*7s_V)Xs52nobP8i;t?XYD8n6N zdRNL$YOd47${DI{Z}P-*vYw{$)Bea#Wv#8!7n=ruuxI+QWNg&RyStArp2)?+?m-=# z@;UbFUv3A!980sj#qS>&d4*5XXFJ~x;VP{veL-FGBa&|MP_s1V}H2Fu+pS*bcSqOjZC=%wtt)oVB?AaT)SW;me=5(mxq;f3_2YTV6 z!tJ%V;bf|PUnm#LBzuScoDwpVE8;QnGJ<@pWB-D31)uw{=;fYS7q}wHRW(fL(x)TJ z(vemzd(7K6mKC{2i2y$MZWn31hx#20B?AU7m@Lqz#N$c=ZW%htM2dx?)Ea^&YRgIi zdv-D@w1jQbtEBiRJ=P3P3Er=xJspLco>UKYhoLJ|OKW;fH`x zb_&K1RuCCt&G!_bbMtuyNmX90 zwUxI&7chU?HtT=%M>TyjdY?=plgiAd0kGM^I_6+GQxTC1-Zl^KBrJW>+v~6p?|+dDfDBkS4isMBwjIemTRh#rig9oMJ0j*6(Xc+ zl5=f4k1^)f(;O*v1hfk&NgV_Ct;Uj_q8$ySt<)jAp>6jXhp#3h*zAeKrJ3nA6lhO85CJN}$){c|> zj!LsE9l=_Kk9KohcJz&TuJfMWF`zjG_xy{9|IBP&Zg8%)Op?TRI~sw88B^FE0VTzcd|7v zEkD}?4%0@PJFI<=1@qq9{hb=vJ}LWIY$tvrMmZsBi$@Ryv)soK%-nwGc9!aBH*;dw z^K5Okkm@-ARf?BU9DzG4XlrdM<={i*IPzJLgQI;Uz!agpwFN;8lv@NWa~w6OU$xR` z??=s+O3O;c?m4ORn>t7{=IaEk6&Cfa^HOCD$~mMzU!5xzl0lHXa@`^GAvO*#sL6Yp z8qI47QeO{FnOipc4 zFKSzZqWO*a#}jU4p%X8lK#`tT>>9{uutR{_c#E(YT$Bj8Uw>(Z->?uXanG9AtB*TB z&xWljOSY@0gj_XL%MDblnY3ER^B^U|hzU=x@CX?T7LE254}lgOI8IXymNFy?X}leL z#1niK<4&;Nf0ocm)N!o+>Ld;9*=w#C<{_SCF7jo96Hr@<>FEwwZ?Ym`LSnYAX1VR1 zfydokdSPOaZcVAgd2O6hPysQKRaIwapx*+RImj3_yrY z?2uR-Qoo{;sGljjSm3J-t;70gJqjlHA;0CdS&Qy>(M?co$*gqonVVF2lDy(I)?^3rY)?mV-sXE;Z|P9Hn8%_FtL$8OAxTSL$>t7vKBtfr zw*id3;yqR~nkFefh2d2v2@=9_OZMEsH0BOO<2d|5$eGet*#tENrksQ89X)(c1(e(Y zQuxY{Pod_IfRb5*tCDngEMHz2n8V^-zTX(SqSb>jMY~NIB{$THenP1$V+Gom=#BtE91vD99?I^;Kf zd)Bc-hI1mGInB24q~(%yc*7V-V}$W)ZEO*2`;OX_nP7H+32*djtu4N2%gSslTn;GkmCWBCRLs|c=U{@s{c zHdK7#ueBcmHyPm{udpP&>3+aXyuk?7GJ!mVF)EV?dX70|9Ir?Rj_w?{)M!81mKZQ> z8|s?>gnn4XKSCB0yUzA$F80*Xe(wou1!k$prOI8XY7Q zV-;E^Sq#+5+jyI9718LHt1lxXj?K_x7ln>nn2tH7JC+ zoB&P3pMc8Bs-^=5v`0zY;%&y{x}D zB@-hmZfdh}RBeoEx|O_cS-JbcD-`DW?KeU_h|0D~i`ab~>47x>W8EEGU;NB})e5-E z&+tjLa-7V_`z!<%-i6@(#W_GQH@EQGL zW}*=86w1BTKa4s1aEh-c}+u^B<5s)zbdlHX^6 zUYISNFP?sT$*A4yH}Ytd4ExS~0^biTkKL?24~tP4G`hEwjMibF`MkR+SpT8o_r5g# z_DUrN5oTiGCvM<=k$}MB$a2WNyq`LABT1=m5v=4cG_zFdci$)CF&?uXey`-@wDJ~c zraKzzjI&pHh{NC!KcYVgZYK6(Nd@KZ$lC+r``DrA`Rq4fEAzs9h z>GbuTQ}m~BuP(1=FYwx}b!e;rgOA;9attVeSN-Top^y^FC5H zv9yI}#KZ5H(}{y?9sx@T?`#lS!efvqgIx1vXssRs7do_rHLGE;Mf%yc;=Md#n2sky zu@EmNvN~=)@Kn_~BcGC$^r@>5GMV8Tc+3vE-KcaVT}`b$vzCXP5HIk zFS{8nKSO%H#*-^rAT^u!FL=U;&6&`7AY;*wy0$Mp0dTR!-$ zD5V^-Pt&iYVvsWpx2sm2a`j)$0B(R9@b>;vNBUexLR0#FLpm<8x6z;52hSkTntgNY z^%dQh^QkA)&hF??8q0dxi?1Qo*X59$rxzUfY&TkvUQs(`Znd_aBE9l)lCN)u^!E!#=J9~+tcv9}dg?he zjXX5BRvz%*)ORce*sCh35iy}Mik$cfC2o#*Zc@pgfd%ixa80o&q{+A-31slb#VQ9k zMYr7K!^P1Vvw;+K8;)Ql`Wl+<>PQdBu~YEuVcQ>aNF9yTTXGU3++5&{1iO$u0hSre zxHqG>BQa9wwl1x?3DZ!mhMmFGGA=x+M$^S05fOKCE2!y^1LR5b%h~y}xLHl?N0BEM04?&V-7Q5U8qI!NiST!k>H2 zUEfpmaF^TqO3k$YYMYO6Lk;l&(%K?UJ^Y^UR;SP8n0%qXz`4}-dgze`&)1i{Uk^W_ zxc4ML---V;iNAy=a2zWU9{`pLOpdvFE!Jsd{1to2Y}h^}0tHQxSG>7s675<&HGEBQ z6*=v}%U<6Dmmr(abl9jjo=wVQZ0kK6&wN+hzwHkg$Kg*o+VEUH5mJN^g2FhiWSH^k zb7!bf*`f1#8^G@hmf(oF(&`=+$}kl}Cu1uEHf}e{ie=L2oN5(ib-D&s>0-=RnmX)k zFUJ{dK-%P>P0Uov7h|1fARCYFe)9+}7bgXzy%U~X)9kGi z%AcJo^i{~WScw`)Yu9e)Z3r6Uj_~1_Q2K6CdZcpp_9xyI@53qYqqu_}8iH;bg8qFB zQrdgOH0Qv|VflB?)SA35UeXO&MlyekT07fA?>G)EB~2Z|%vDXX7*Er{V}kI3kOD9r z;zfy~2PMy@yMZ>i@wzFy>q7~z4M{#PKSup=wggF z4(#>@P$v>uC^(rC7@P3Lcz4$}D)ESfpHi?7rsahIkoKxe1#`z}SRhz`K8X!|+Rfxo z7jf%JWZ*JFGCigumWEP{Hd>(AVn5G#^JSw>UVHiH*1NRO_)N+jJ&CgP&(3GyBAd9W zXWzhM1F6BbO#8B~fZa1(-g->izm&%z>zk~&7iP)FiV(aGowJLRgH!a~BkY?~0{!1+ zzrXnKAWT5`*YtkN^!`6&xaq^W>BGp%?GsJm4kgCbU$*VgMwmw28*^-o7Arlceax%n zt1ZTBwaKoPqC3eY)2m30Vbp!$y5ETENXSWB_7|aW>qHkzi-F;-&BEJFdaAF%cPDm+ zNG=}=>NFPQWT~SPVEdvmNE3Tzg|j}j)DXI$49L=@-p4ni6b$b7{BY!@OZ7506lo2F z@zfk5m|nrL<+0v!u^-Jv@+hZndCHGTAfFEW>LRgZ$~6f=>IgW}F}Akd?EO|SmC{4T znd25n9Zw!F?lFFm`vi+B`9R46d=9Mr+|IRq0`31*R7tmbao6&&udGyGzwukg$c%Ok zvuMwKgygFjJb_D~ySC8CEYjj7v<8SQWciKjWHo%OJFxnm#N|mBC z_Yr|T-%lOpCEfqer!t`2Uj9&YTGYe?wEcaQU3ACOkTU4qcDS*qt}s78*03TR#s;Cr zg|yE zcjDAZ8Sdy^+1rYzJdDwlWhQ2JDm=MC2hS}ok^1X}oZeSR%K-V^3SsyU1GgznB0%_U z;12s+xU0Q9^1kY_US5tjk2x75LY+sy`T$|O4hFp6s8+Y1lq%{w2DO2EHJDRb-;7qo zAiXkH`9{N~f0@m!M~3Xa2x_&s?d5mG7v=h9wXkm%Lq2(svvfRuC5#u4Q(*gQ04Bzu>86>vNB$e3E1- z{>0>fvl_#tXbs#vAr_&f40{b2=KLvNq?2n94IARfmh(k}0fO>sF~cK=WN_&9b1F?f z=+fq05%JMZ;0*=os?>`mwiA}fCkM>CVdan0@!aV-yIYKm`csn<0lO6Gr#8 z55J1I&SjNXL~?z=Ff+~5HNiaOj4r?Wa@SfC3blToZ6vYk=; zTgFrQWrcCFYO?}HJeO_?0VsoApV`UaB8!s6ecfi&X7x@{3y0o4M`39kzj?68_egcA zga`QN;(HQ*ORDp}dBn1KHRf;Ws<5kW>D%sMZ`MI*_baUBPsGMa)p*OWqDTv#(P^P? z83Jc7tW^uL(*ETCRtvCv-7p&_MM1E@u<$Y85=bAmy`av;@K;C%Is=R z1a?0i9i`#002Y7*^_i>4+6GQtUiun0tRF$b2bC!k#q`!9+|Z+Yv;61Zy%Kxvq-~MJ zFRLD%6$o6z;bWe`W!yo@P5P}}vbl>=WnFL^xaK@dy|>VzVmUarkVGe1G@7r7(DzEk zP^bbmOxhM>CJfrQnaXMBc3~lSTlDpPFq}7g@+F`w$Fxh)0Y2wx;lHhSXR%o7Y1R^6 zahkpyW7^RdkDgI|OIU(Fj1r^35UY};Dh|PBWBdsUEBT2}Qm0T7;~w0de~U;HTLCCK zCh&8LSW=9z9{%gjp?Mk2^)SltKxs86wUF1}@8OFS(8f2I;t2CIzw+92e3d3$N9|73 zk(rXec{7xc=AF2oB;4MS=Xs#Qsn^&oX?dbfgBy#HTTL-RhA|u3L1Hx9YTR5ElwFuvU2t4J^;pEcie!R3?Th+U0I!7qPeD|F?g z*)Y$&(Daz&An)h%^?sRVNw7#5kTka>zDBaDb^VxxO5D3hcX&$QF4WG8OqTGbyZ`)9 z1yvTL znYOe8?>!PYuaRd>?Q%Yx|v%6Z7!xhqnswX zLRMcATb~$P;cgP=Hl&%_v4k@Ww+yO|R8HRq;vG%+bgD4Ou*g}77FSaNxE!*u50vHA zXes9MiW2v` zZ~;pdw<3)I0r1a-_c@|p(g)VxDgvS%8QgJ~zcj4POttM^+E zSb`V@pv^5+x|=uITX4^wqIri!pjHEu5F&oUG>lc3wctvRjXH>iR}@Im#nQyq?v_u# zztDF4HIAQb%;@{epH<&q`f|x4o5GRb^6PivX%N z3;bOs6PSte!6<5e0%wO=JQa54KvKO9F)#`}3FQ0`%s1NWC0lxI_c!Fk&?@HR#w(A% z9#uk#mT0>}tG|MYPrf58qqib2+`mQ^OtfU8yWVw9@g=FkYl_Gr=8 zo>)(qKoU>muSqj%d$Z2G-H5CZ3A@VawXQORM`j;~UqMGKNx*96A)hSJ_M0J|klJNw z;(*yh=eYhZ|EpJ6QUwT8k}#9(DN8An-wPeSXN4@Pk-BvodhGT{--Op2WDU5Aj9=I> zu;_LC&jMOc0Zu0jcwGf-1*Pt+=9J`@Mj9Z(Msm^G!(8a5A{P`pGFix5Wb(dZ$Fz3J25SgBae+R zQIW;ynFxkhYfNEGj5j5>cqV%^j>vRdXz_`Jg$B;?PEXEv+xqCEB9_J}HElk0ImwOe zbv@%XhTPvr=OFww)^>4L4vg0E-Wv#!P#Q3J(g8Y~zZQj=bj%>buzfJd6zAi(zVMF; zK0NVDJ*p4GnS%bPmEvrk&QShG%WKM+M@Sy7pr(^{58)!zRq{6~pgq1Q4tWUxzOe40 zr9+48{A4T0r*O1NY#PWDoL6`Z7W6>i))Z*TCI9?Re|>rFz?E@JWu?+Oi~Z)WOU?1j zH8h{fOK?#*5Lvkko{nc>)<)p&2aO~(>Qm(a>LB6PfN%kH4z4D|`L2P!y zGafjrUbahIDLSsU(q9QVZfhv@!NuT**eGG z)FH4qjKR^oUa)JDdjb=7I^bXOBKyjqeJbY7H>KTHNV*S=qJ=%JS`zTO-^mJN7rpW+s``?}|E{Utn@WGw^v9$#2XtldNKK{y>aI@6`@}SNp2;0Y-5+Rur zdcM+OL%)^xIfon;b|QYQ+>h8JkR^cJ z5nt@R6NXuzOrHZlc?IX?it0|?8-gQ&A<|W8z}hQETF1a2s|GZ0u&LK#aM>vrWY;ll zf7rLkc6g_fSJj%Lxpl9}rhV#O9#Nc;1&qEGBT1M+3}0mt#n6xB z?;L7kf~xS73^W`^63pE>TPX6(NglI<-@ZEek z|G;ucb>zd0+Gy%Ovg{)~tf|uCaXR4vn5&Y|OGQgYn&XrA_H>SjyL)Rk*YvQ@F{}zJ zNr!7^U%4yZkt$PfdZ5K9B~>%$zu^`)Blw-E7_toJX6h%;8%K zbhO5Y(DCnETBcj?sheSuBPKZqC@xsdVu(s4R5#?QH90c@^AvfTK1`XMz}AYxD)}vx ze0ia9sVkt`+CaH3UtqRwM&Eo_Z;qt4!WFOU^5bkW=qfKw;EVmoa=@tBHv%`RniP3L zJ5h{V7EJp zjRxS*;P&+@BV{5@E`=5o@i3AI`}YXEec zV%3>pf%ydw3z0p^{lJerkmz~JYSx#dlaZG1_EsfUWx~ebp$hoX$IskNAdjCM^y}2K{EScR<59Cz7_2I|26^nV zPo1a7)4Y4Y$L2t0JAGm6;b!$)pOP`#OmQZ=E(R|E0J8DlzW|00iKj`^Dq{Z%hNklf z8T%qL>GSalWx{{!m{;TkCkJo)|4#tXFfPyUOHBd2t6#wEj0$Qqw~}5NJX;o*$d?$v z&+X6r%+K(f>CgS#&;8bK{nqdQ{_n3|ms`rICFPKFRCu=vEQe{qkYXN8`l;xpfXUpC zji@Jp#lTFC2{Nj9N&U4N;P2GaVKv2v<=9vO7{f&s4lI6&X8BA5XyH8SF+>m62M1Q3 zU<73C3t-f_VCF(bEle8T5!$hZZ{3^RMnzvcNi;HV$GHE21AoG!m(Pk63xAsGhQLq3 zlajU8ax^T&wgU@Rb{@*J#M}*Tp~7Z%DtSq9;(+Z^b{s~XCdqF79*;GXFw*_px9^)T zwc|}g1YEDNPeY(xwRwhG{KOA5eJ zQ|pK7LzS}mQKFHgiYxMGjc<-$p`y3v@ai+SX%Wz(5hX;sR1zo)1Fld22}lg6bu$YV z&vsR@eeX*>D<{TuO=H$(rqmE!vm6Y`W5?z4j}H8Wlz;1tXZoN1>7Rb%H-6&}{@@S( z=#T!$|1CY-xDHCRtuGE;86;b6jW%6zrl@84F*63wE6Z0B;HOR&4OOhZDEz$fW5(il ze~ti87rq=+`EM`+{OVMz1F?BxB+(jgPWR_V}9T=J98=OHI`~8xa#y zM0$zY&IR9gVoA&~G17DjY*ejdGz`3A;sjs{&E7K~!Xy`_gryIuxjG;MkD07n;#OIF zc?3jL&5U7l*yz^pSol*?Tvct+9HnmrT|o6})WAHNWa3gWpZQW_bPfR{Ulw2|0g;u= zLvoc|2ag(&`{n;VfLHI=e(l%zuf6d981S3F`J4RH>fiaD-{F6s`mg@#ulV0S<^My# z{}N;0a$4|V;DaH6$fD6RAWu~6XGv=pleA#8MaudR{7L}n}oicj$37cU1qh_hj{-++(L})bj}cf2`S=gYG13Wom(*GS)Yyp-un**$9)>>l%Qeff)ZdY6-Y(L?p#%nfiyMS9_&E{}m?+Ys~k;4;tgV6J< zG(WUI|MNf3|8)S&FZ{wU@E_6pm0$UlU;3qA;-827`mg^w4>$iyAT0ksU-(ak@MQCk z8vK>k+3ZWSOA)}Lm(kD9&yvVT%kq5`+=&mr(_zlyi^7DoWAU#5SajzIkaTqE&m+rL zz0bOac0|tre(jL;eR2}U;P~f)rwYB_7@{5LJumFoD^fTYS*vghTQX%~n<`c|o5JUo zvYR*SW%LW1YAWEPTD zR%-z5x=caOYDWs5Lc!E5tVT~F4hTLvTSGRRww5~v%-lvU z-mTfjaH_70tLVHciOt~85pk|(pQdLdYA9d^x7f;HZX@_LFoHQV7{(>m#PVV$fQ4m@ z=qF(N2`_ccPJk&R>JDJLG%;L~*Va}AJbPCHVF15r1!UL#pR*);GhWR|E0 z&xJs}04yL*8Ca$WII*(H!+hFHO|b*nes04HxaD{hdRnfJ8{r;#`*@*vj(L*!S@pF- z&yy{Qo;Q(Kn099QXCpuPlRwGt-SGWKn0ceckSuChn7iof!r6uG+o$??uQBff?$bp~ zUuyMXLTqh8>^<#2n89Bdtp38FkVZJ8)E{RUmtAPe*hnM>$4yb6C>bhgBcQV;LJYn|=cv5^pi zjdK{B^_f`=`)CBkdIf3$kVL#3+*T5(>3OTV5p~OO)>>{YcjCPP(2#P?gM%x_maS1T zhC-`!s032p7*F9^q+k*(fbC-1nkqVgvDSdDi_{#(G5Ue>2bnFP@0f$-tQ(}BP69>% z77)Q`ta1yZMiL(xw?)XAYT7BtYJ!Oovy}mV+DmP*jqQq2TTLDD9L`z}%;Cv$iC}J% zFPWDM&+|lzcM36E4AJmJ@({y&^?oEMdC;k4Ay`Y^hy%4QXTX+)KT9{kop}4Ip`?V` z{O|Ao?ce#Fi&6P~pU0Yibi>~$EdSbI9t!P(-e(sjs~34~<9nk4EZZ>~BkAdEorvw_ zLJ%*W3@OG_aJ!ECvWwAFT?B1c*6ob=tu0J9j1PC~mP7F=5c{MkRD2)m_5~xQ+Z+R| zU^WVq1sf$5>nsmWAkRpBC7QOvOMrR2B`fM&JSUu^W_1D!5px?Z8gXwdXGjo0jD{GP zwx)>b1!=0K+!WC)sdJHnEatNqHCZK#sh8kB{w=UwlQe^$noq=hC=}2lPu;peKm!2S zrUb04KGSWA;W00ga@wg61H{EU@%A@CBqrideyQhVVvN@HrEzYXab|7}rsySd#W--e zL>?x@V&_B87mE$)GyfD~s}aC@HbOLK06cFe{+#C4*!4!@4siB7iBWQVBA4bW1%PMCh>iHr8XTD09IAz}^)yk|NCFRg z#wjD)cH+oO;0!ixu)r+ossZzjmaijLmV1GI*@(7yf24%&>G5Q1jFe%U@)VR+Lwo@c zf6hy-qsMl*7(jfDoszAKyW_OPt{9#xzD;wFUarp6BIZj83B&gM08AOHQtWm`+Q|gm zV$PzS9ccFDyjAT^*J{3Shv+g4bjKl!!iaV z+4?@+7yea3!wW9AlARa8Vt$ucf0U7@p=USNXl`f8#G2pR-uePy1a{}H=FwEvLOlX! z11KoYUSRl`sR83qYo}7LjBH;^K(+R5`wSo>rI>P-ct!<8Ck)Ijq`c7-({gYkcXiLd zY0S>p{m|Dl62k)GED>jm9$f8IrU78G*35>{C|=CvRxv4>8drCDYY}_N_shNoe$XPP z6;&RG%jte}KD#Kk#bvb6=v`GJNfmsu*&-|`z5w`q&P&}WfXiuWi2yv8cQ+%Ki@>Oo ztS$8SW_|VKz42)aHYG4MnT6BCdjuklrZXvhj7-I1PGx3e7%v9}xvBI!>J$! z&DLjH4PQ9#gz^k~&N6pkA~NFyU{~jzCj#HkbPLmGX>iD2nN0Yt#~1%NOUmaDBjz}O zj%lqaFg!{}Rhfez=LtyZZ)7`<$<}t3=%WT1H*dRQf{%hq1X{f|oO3Shctr1knOV+Y z3VtmFw2o9P0~WNM$AQ!n(k_`a24I$GNa5?Htf&Je6S$qxtQ}{RC)SkfoeQ3=0;0on z77k_fuR8g%Yl}$?RW%imf>dA&HI+OA&9gwZmjJiVf2q$Y=d5!Md(SvO5AW1CHDC-~ zTrtZmeI?oI1AsJ3Y66EeD^?sYcx&_IkHpmaB|r#iBPMq|$tkv%RTlF8`VbR+mwlk! z&Ntel;ifs?Eta_0yvSDf#t1kqTfv+P!>j<^Dw@jQ11@Kn&IuYuTeqGItgP-bYKk6Y zmYbS$!X&E@zyWCiSo4@7d#+g?u6s>O>A-h`1)ji^z0w05RnXW@NMw0Gd=1n{>LykL z({_S*0kN?Ki0w-wTFlz1oTFmGmiS^N0Ej1`FmjqiDkeHx{1ngY^}@BaibBuQ7tG^$ z-WgTeBHVT|;AuX$;LDZXY+C^_fWYl!zU)iAy0+!~wwYaF)(6u-g6_9kubAk!M}Hy= zV!JGpNWqL2Y7Va(z~u*7lvFcY(3fvRyn3C9DUrGS>JWLRTl2jJ!yEgaX{dSsEam=O zzy0Tq8ISDS=wCdGvt7nH9<@wJM}5!>(!hXE9|~WPWt$D)K^nMn2Cz#_0Xo=P6K`^A z%*y0;S}CBM)?sAYR%nWd(%1(PBS;yTO*J%CAyzJ!0GMSj_4#DtJvgct$QOVtjO9fb z4+xXK3GD(OP?mtLwlnHObRNsa6>4a7n3)pC1JVa(R?HPmGG%TuYKZF3i$&(NM8A0J zFF6m01AvHZ0=sx>TTce@^hZ{&z!WTfDZyogoc!BM4RzV9uI~ZU_txa`*PykFahs-X zvN|#t%P*oNTW@w%RXYJCY>U}u1<>EbPje5n zUo}UiJ8n+m>uhYcHJ)?MQO}thegc}Jv=E*y;;uKJfP&R)ZKs&jTukomc~X=Dr?M~l zc=V=ZX4S&VBAp@9raF^yBsDpsK~J1ZMj!YL7noM!3Ul)#CdLS!S>fZHUP9Z-XCY*F zWov7TktiXF&FqI_B!#jnfPE9&l&t_Co!i2kD-Efsluz&FtSd?rNDnwm^lxB}z|mMT z^JrpB0Ggu#PsWsP=4o-) z2-tS%>d%MwNo2AOAe76tcSbDH0Ag8IG|zM6D$Yyk?L3U zQ$sVyMg!xg00yijsTC=~j5Z~<$cn3)o_^?)S#H)kBsaFUQ#>(-l}sL7N?=UGmM&>D z>52fIYaXg{{f(GhuBn-LioKRIPR+toOe*JjW6Tc^Gtb3&AzRccgAq?A872$Y2);&= zio~O#s8z2m_c)hSbIM>^p44rpW)e&wvq}#@=33<3PTXLSVo%`#%K{RF^`Tvc z>AQ;MHf_PvQ`@W-pbPpL6F_<=btknNnS!^=*$Wfa^pq)*Qcx@f@O2jOFF@C0?Tb94 z${aH92+ZH1yr_n6$OUjqY3kWw%_=S;7B@rXF923$&!(mJOHJa-EW7G(;yDu<$C~6U zX$%fO7q`!a7BdMT77L0Q21tR4bK%@JB_Mx*TR&GFRHh*XHcBecnHG^JqhUPawMq$y za|Rn3=>o8q(V4-3l%;3{Z#!*CA*)efky%+~R?-qZeWs_UtyAWsCO%u4nT64$cruvbx1Km#Z)SzB${3h)#VBNGFh z8NgR0Wiy*KB1oJ=B{Z^1=9$uYh->8ozJArc=)9a?g60=3@nyD8!TY%2Ru1kQe z_n;e?5=kOeS%JwKtu^K>NDt66(7-ygy#&~jqRK3`IsoL^MuJ)L#I;ZBEB` z#>55qK$l27E}=`e9gJgkLuWGd*ppRS|Hmsmx?qom&{jBewFf z1!Kpcgj6Y6Dlvc(*CfS6N{rKCdN#=f-l4Txft@F3ZK+E3807X}9M$bCndM+gbZ9&U z>+EW#a{5&3ByJs`2pISe1!P+kho2F7qyGf-ViKsdqvRnGN8Cvv%Q* zkdNgJ`5Jf|m>>gVo)3(?V`yuZR9pSsYGTBVW%d$FuIMXlBsI6-o@`Ua`U0Gg$>*rz z852NORf%J#SMW^cEtQ?lri{1+Y6QqUFv*2KywqB}KQ`YindEFgyQTrSbO28)aL4P| z05yTj609oG_EIld1hnkVHh(?Y&N(BMv0bZjo!QpHpAEKr?UwD7AwX&DXEl?Q02iqT zy#2Z6X-iYwY^@t&Ygf#WT9p*~;>@VCwqj%saGPV8V}i^GKx_o?Gf7O31{0eW&7RSw z@H)6H(qfh@w`79mVLLHf{R6Yzr9bn#ysPvKz+s8_v(VUDlg0y7j>DVROV)Qg?{LGiy;@NmI;RV>r2*eH-o}S`)7vRWeO882! zwdC~wf7?5Q1gA+FdZ`kf z?()1oRtsMwtpF++#4!ax7C#DKjE%ZA0>B`SjLvJKmx2_`sJRTdMs48%#LM34GjU?U zilnaU2!^tJ|B*&jK~Dn#C;tQhZ~bxkuY(WgEBkmR>WkASya408_2h9N&F2y%5X|;> z@aIK8Zpz)oMH!+e{u1CIFCe($7T}P%AAf7-?&ZJaYjmx zcAU;yA?{==SX;H~G||e)tUSZcCC>J`&|l(7s#(j-)NQ$iUA$pem1R0=@@zdo&tU=m zRZeG3TJ|z~d*R&&e14>nH7#G0n5}&L=h>UC(Mg zE`21yxlOQIEFp$pky2u-lhHrHIc_rI$$a}wJ@3%cky$UW29wIvc!GIV#a07B2#ju6bOaZ%D~*qcDkT47) z(fixU7N(OAOgNtj)^!rws8S8_;h?mdd86AZz|QmdxF!QuEO4vZ0ZUw3X|~sh4@%v1 zu4Jkp@^bDZC$>xGdvEGHm+1&jCOBjIlraM1dIXBsBuNR!a*25EPYJ z1q0@>ir$g{%!eu2tR?_FA50WD;*9tsfOn8U8Q%dGkjVsqGTH2!cnK=$jET;sGpcNy zK9GGOE$QHw%@|M1YS$#IfU}C;x0vCbTRwoF9h_+-as}2fPAf~U)Sd{y^#VBaQS?tg zED`mrONSXXmjMSRb`45*CozIB;N_Wm&CeF5LlW1S%6v5G;)0$A&k8)Bm?gSY+O8Y^ zr2@sai|aB?R--0Va}(P*aV--ocw!`r{x& z!Hk+Gn6p?FzPL)HlqNaxrJ-)fW)*BIF#0JJPrb@H2;7G5Gownr6r!Rw_{Ak~3o7=5vr3e+-LR1+vO#GACJef_BrEQvL#VNH4=mfVpsj z+1}HbU@F6{Dp;`;;GuDXd<5*Kz!atF1hyCbRh9~Dzl;f13+bu%p%MLU`sk3kr@XNT zMcPT3GbPFN0$acUql}GqWg=J$qk&O5@#?A|?QipnlaulQV}WpGf&EO7cBDU7z6UU9fp1v9FF>Ch{tG#?J>I>=xW=kN?NvAwjNV-}bK z@H|`}H<;!MYIy*P^`9|5H-KAB2AsM4JFD74oWOK4nM=;ObJeyAtWD%K zNh2V7dZ!3Vsa|48c_J@m<9u0Lomc3B^9vIxaC2Af7GFDF{6yo1c!C+4p(U*{L@ZBK zDMNaB)KoHE(a~wxK?Y}(q?EuMHIM*JPy%MOq>^ZtEt2`9Nwyf3=>t<1t_pbPI87e70HD1@NJ*QfZIWfAoJw1fE&~&AkLIhCZwk=4_E%(Z(F! zdQ-1q=OmeAg3|OSe`*rnfpt|J7IW8l$Jc&>yB2siuO%jMcQsq)+AvF;EkGQ=e_@!8 zwwaeIpm7dbGBm3y138c1ljn#YK^j1B>ad=SU@N{4ZfGh4=}n7M6TSpG1RV5g)U`F*RPk)&N3z$Zp?JaYb zVrW;UkLy(hoJ zzb%sy+g_x79b_@Cs+cv_x5BFW3aA6sBPxBQPndbN&3!tQ_Mt^ zMr>Q)dBmkGasn~YGe@{#5#aB|h~8%fXc?XxGR`l%uM#Pwvd{XjfCGp)5AS8t^XE%R*1s}D~;}>3xcwPCI=<^3vej4R3w|YtXeZyhCqv;}@BO2sN=mn+j zKunn?fH=KirXRKOrnoeWd;oKSOWCDhkuGyaKNZ@}7L@+(AU$XRE#TEM#0O0D_;v;Z z=6iYKG`3_VU=U!%($<(OMNWV~A4#wbLo0!)Y9)UCrk*n<)@3r`hZ35qfk|fK1xf|p z(8lltlx&=&y|ZiDs*EWOR0=qyG~fu*KqcJlno;HDAj#sTCi4XxA$e}H#4}xDQ{pV465Um-yv~{1;e_OrM6`Xvxl$E_>Vm)X3=H6hQc{CI0<= zYB_->M1g{po?SAmTG!{|zitiY^T+oM+58|X_JZnXL|o~dNUv3Q0}D`UYg~;-%Bq?ZFJSkbHHj4V%-y>6E0l-1kB31$^T(sO~ulq#MMVy7c(jZ-t3OPTF6($eT! zVgOUnM*_ZQ2=)U*JDAv+`(#CB8Eam|yE&{}~gkz=;JIDjX0yF?3A3hz333O19-WEv(MjOF* zU^;_m?*mRLDBgjrT-eC%c(cTm3TW~AzI~8o9?sShX`m8dj=<9c2`~zh0qoL5UW~t0 zLDA|N-N%@lDL%D3BAMxmEU7*oW=_oZ{7*P!_5x-*4xg{z-{E{g_nJoB$pkQW2;cDu zCg|dm1j|?L3YIQMym(Wu0j6`nC6i!QFG&Q8x8)&n4O;?=O(RR^2*?NLeA2w5PaHUJ zw6;PSBd#~l=o8$v*n3XT)5d4P6ss%(I#U+*QeCaoD;W7o_=d784bCuX0;DmMw0B0@ zRSH&|%4h5vXaq&TPo+nY@>!v>sd;0{Geab&V zhL?af)VR;7X-|MB4UI5HNPtK3EBpPE4eLDtU694VRN{q+u_pj{ctI!g`TXAI)su0q zYs?*<@ueP;xkL{blZo?udQ;PoZsJHmrNHDR&xj`d3D$^GZ$-L*>5NOGLxVD$fcBaG z3_p*Uo?T&*;x-YKp30ZZ`}ia+WSh-Mo&t z=zkltYxX|9spq_K%>hfLf*I=t-0@TMKK8125g(s^yP4{LNzTzzT+2z$mORtXsu+i4 zxyh8KJlkc^FL9o$C0PQP@DiV?$|7K%Q!nF)A|zdH61Z#6F^qo44{XxE5KZt30^Lvz#Dm4mwRBy}#@MZk*vq1u)g7_&`pTnKTmZ|`8@srpe z7^}B$YRjkfC6icCI>paq)e~qkBTppRj15dfoVj>Qxorn+Px)@g%*BbDVg_x%s+jrGSkyWvHpkOx${` zO5=Cm(RB3|egMjd93~naJ+BFNx66pW%>`#KnoK5MN>fZY%3^GX7Z7jX)b^x%0NN$E zOy|f;LG6GyPme79VrDvV`k#UJe{O$M_H1%l#hL3+a)h|lmOHYR)|*eJuIZ+-2oO7H zDq{fI>S@dLw=o7mcmnWukJIUz`-JD9g{KDW&XVADmN-4KOPrp?)J!HUn9GZap58Ja z@0+hbBq#W!KLUEAjW|zmH)w5gnVxq<*7LE&G@K7R*zPi50jr|%9j%54Gks*ze_ZnO zthY1VWYP#|2WXPv+Owe(xXg^Uqp{rxxtOZ*XO~Q}OK|68X&ocQ!P8K%>6^6xNf^Oe5iaB9{*Gu6Ls=Qzojhlg;M>JpT)8@O|>Dl-jT z<5XgDmSl>6PTw)XjA;N2nyJj3-rRsy(g{ju@5BiLv&vj}BfM+KBs;4q1$NDwf<3&C z79d4$6igGXjB|nTCFp82hA)+qoMI>TC`e`4lNLR#!T>rMswZ|qfX9d6s~ILB{w4bS zQ9Hnszks=OpVAXd8CEj|!_YGMlR=hJd`2DQuiw=5xZ;_%x}}-ca*}rpCbLv}&W%aa zxLLZxKCip#$!k8J*QuGz1ls&atU5oEJOUz>a$*i78iUvT5$idmzh?e(WMZozVR54UL zIDm=kG(yny2_|;87}MejRDPGA{wz#8Pl@>Sre2e#MdRPs%=U#>iuvjPKqgl6Uyt4K zyUu6h$$Zyy>T&aT2|2MT@v^FN#O8g*_Dr= zI04v0V_SW3A8VZCtcuZ~1P8z}0M>(_M`aPfQBRzw%K{#bEeHTw1wOrB2i9968GXPL zm?oG2JP)3wtQQU_C<5l@V2=0l`ljN$I9opY$H^biVHvP11tuA`dKnj4`Ymub=;BSS z6nD>EC)Km`K3Q*I^{!MI^yiti|(*dVhf_o*0Mc^l}87tgcJh z`{d~c!xRoC#z0~LaUQ>@GU32fPK-I}ilu;cSV_I0h)jOzXUa1E?E|3EL)RDl{gW<| z*$Zw@KnE)hsbI!PK`nskwx-PV++i^@4GSJ3rK%H5%o?S0C2?2iQa%JypTHfEF9O8a ziivXs*fj#AGJ=WK#LO0O=`(n)YX0H%wb&eY@ut3$&bEm!eJ{z`^%B1ntP!pqIl;oG zGUg@dm#xwzpSvD3v$UM?j1jC@3Rw6d)i!~fo1V9jXUPQO$<&1g{_Y^NB&Z8Aa{=-4 z^mU~=@f2fgI)T`UR0S)tMlx4gQGpup<-z>qX^|8V=W(BQ?p}f-U}E&9HqMAS=^U{z z%fw6!`H)sx!1VoiPH7p}?k@1_j-?NP_Nvnmx6&rw-KFcCfZoXPC79#`ekipb8qR)G zpL@WZB%LQI^Rv>&jPa+|&v2tBSolm~-ajt(rv9baPtS6TT!2)j_(}XGOCJQxsv33y z`Ic#Uc(DL1D78xLV6w1Gu_>5{0b)UMe(@qtfQh7_n7QCGvTD3|#nK7D9(upv$InuM z&hldR44fC~z5wxz=uKxMZh9IuUvVxlF|w7O%oK#b1=cb%ott|ps)C1jK7=LCMBqd; z0^-`=v=~r1(|RQ}yu*o=o#OcEa7per^%Bvq#rqM5JMlwlwXF2A@tLHW;KVXZ5P5?6 zJ3gy-%(uD{FJMZXVByc=7Ay@*#w^_a3P^qa@$=VVbu!@6KqfL-O|bSMee+ ze5NqxN-=l)$DcsMONWo~Ux$T-ZVv7WfcfePpJ4TBQq+IN7L$KYFEtsy>|KHy7vL5$ zg5o8BoV@9bSe>b4agJL{ntnHGIISkOO1vcBtgaFN@uqIw2_|lKq$-e)ci z7g-8e_>PhPgVE2^v&qtwE?`QWVByc=ufWimiX#^=B~D;^8P~58&HR0>G;#d$WH*=< z*TSYV+A?L!#3={_FXP>w@$-)FkWNfVI+qd8{lzQxYF_+moaU4sE<5)*H#{3p{i*pe zGglSIlm?grE}h^KFTG2uoOoTZR4^l5mubAVXZn&)a0yyzRsZ8nO%0t=LDA9@=#_qI zeq8#NTN5wAB;Ciz@6Rcd1kc~=%hD3RnI;ol#z;WN^-Ax+l9dXI6M#KpJd=Bl%__?dnePg`-j35pYd&s1{pc*cY$aOho}*SXXD zjCZSt-ct~B2jnl~B3H^9C(~}0OxFV`6|9t&lbK{AF3nfbx*yy9KD_}V9Un0r~eyTW(*OY=#(Jj?=J>RTY6x}25y<>lTjfCVN#)63=8BbsUW1Xx9CyHd&Gb2Zr|xa|G?H#KFC@93}WKYrqC z?f|e%@s9(Y{RQAJkR*~i^iE(k{Uta(lT{L2rn9v0T?$`G{H^%>Uy8Nz;Y=)3oM2(n zHxK@o%J>CL-;bCths$vfkT$((~e!r>F(eG<|Mo5o>6-xmg#9wg# z^kKpF)MBRe(&3VvUC($93NK)~V(BxWIt8XhuWWkx+Fj&xnk`^Di!UQ&ytt@I=^a?I znT8iIy(F2ksxfy9T=M6q;$$ux-zVFDwk)zVfH=IsN>kqP&aK)SCsXMeJT(5Sw8lM{ zs9b`Xienzq%M$+eF1(gBou8KP;?v>fh)cnnKEK}7Z0X@0?I8tx(H}n>GcnI)J{mN< zWm3-4#0pNPM!<7*Dlgq?zXS5bfI}y9;yXtEF0MB(vdP@xC7b4#tIp?u*i>aWFa?p9 z;8ac~{4Kzs^bTF=+GKv@EWN{Ia*8QEPrMVHU5mL(Cm#;XahK#2fajU|$-jeN_P!Ln zGbPRGHkt4OrtgppO15x21lFfwrgxa$S<>oc?ncB1-tYbWrslo;m%sd_hy@tOyn0@M zg=LJil!g~DC0>F_eoFpBcFDMprLf>KMozFWX$R-<9hfiNr8!IQFw2B=t|7jRkn!T5 zMJHbNuF_23!QWc1PhguYW~Fzs_!G>X&nnD=;Ig#HyL9sJV0W9!%WdB$|BF`d4^26z zpEyQvnO>6mS8CiPSRbC5-eG)ZN!ycY+<&F?>rL$onm4sCYiIB_@r6R{UwsnzEdB~S z6cIoyC}OyB@|BNGJ3FY~|=8?e@*I_dlqabF2g-JcN zd=Vc%7g>4-GR#KzN^0+`adEcZv9YVndj>J+y0Lp&UbCozr5EeSjy_dGXZ)e>00000NkvXXu0mjf%9P;X literal 0 HcmV?d00001 diff --git a/doc/sphinx/source/examples/Navier-Stokes/index.md b/doc/sphinx/source/examples/Navier-Stokes/index.md index 6e1988f4..0012e3ab 100644 --- a/doc/sphinx/source/examples/Navier-Stokes/index.md +++ b/doc/sphinx/source/examples/Navier-Stokes/index.md @@ -7,4 +7,5 @@ The Navier-Stokes equations describe the motion of viscous fluid substances, for :caption: Contents Lock-Exchange +Cylinder-Flow-2D ``` diff --git a/examples/cpp/cylinder_flow_2D.cpp b/examples/cpp/cylinder_flow_2D.cpp new file mode 100644 index 00000000..a0f2653d --- /dev/null +++ b/examples/cpp/cylinder_flow_2D.cpp @@ -0,0 +1,596 @@ +/** + * @file cylinder_flow_2D.cpp + * @brief Solves the 2D incompressible Navier–Stokes equations for channel flow past an obstacle + * using a projection (pressure-correction) method. + * + * This example demonstrates how to assemble and use MOLE mimetic operators (Laplacian, Divergence, + * Gradient, and interpolation operators) to advance the 2D incompressible Navier–Stokes equations + * in time on a structured Cartesian grid. The convective term is advanced with AB2 (AB1 on the first + * step) and viscous diffusion is treated with Crank–Nicolson. Incompressibility is enforced via a + * pressure Poisson solve and velocity correction. + * + * Equation: + * - Momentum: + * \f[ + * \frac{\partial \mathbf{u}}{\partial t} + (\mathbf{u}\cdot\nabla)\mathbf{u} + * = -\nabla p + \nu\nabla^{2}\mathbf{u} + * \f] + * - Incompressibility: + * \f[ + * \nabla\cdot\mathbf{u} = 0 + * \f] + * + * Domain: + * - Rectangular channel: \f$ x \in [0,8],\; y \in [-1,1] \f$. + * - A solid obstacle is imposed by masking a block of cells near \f$ x/L_x = 1/8 \f$ with size + * set by `cylin_size` (note: the obstacle is applied as an axis-aligned cell mask). + * + * Boundary Conditions: + * - Velocity \f$\mathbf{u}=(u,v)\f$: + * - Inlet (left): Dirichlet, \f$ u = U_{\mathrm{init}},\; v=0 \f$. + * - Outlet (right): Neumann (zero normal gradient) on velocity. + * - Walls (top/bottom): no-slip, \f$ u=v=0 \f$. + * - Obstacle: no-slip enforced by zeroing masked cells each step. + * - Pressure \f$p\f$: + * - Outlet (right): Dirichlet, \f$ p = 0 \f$ (reference). + * - Elsewhere: Neumann (zero normal gradient). + * + * Build/Run: + * @code + * cd /build + * cmake --build . -j + * ./examples/cpp/cylinder_flow_2D + * @endcode + * + * Outputs: + * - U_final.csv, V_final.csv, p_final.csv + * - speed_final.png (macOS only; generated via 'sips'. Otherwise a PPM is kept.) + */ + +#include + +// Optional Eigen (for reusable sparse factorization) +#if defined(__has_include) + #if __has_include() && __has_include() + #define HAS_EIGEN 1 + #include + #include + #else + #define HAS_EIGEN 0 + #endif +#else + #define HAS_EIGEN 0 +#endif + +// Mimetic operator library (in ./cpp) +#include "mole.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include // std::system +#include // std::remove + +using arma::sp_mat; +using arma::vec; +using arma::uvec; +using arma::mat; + +// Reusable sparse linear solver +class SparseSolver { +public: + SparseSolver() = default; + + void factorize(const sp_mat& A) { + n_ = static_cast(A.n_rows); +#if HAS_EIGEN + eigen_A_.resize(static_cast(A.n_rows), static_cast(A.n_cols)); + std::vector> trip; + trip.reserve(A.n_nonzero); + for (auto it = A.begin(); it != A.end(); ++it) { + trip.emplace_back(static_cast(it.row()), static_cast(it.col()), static_cast(*it)); + } + eigen_A_.setFromTriplets(trip.begin(), trip.end()); + solver_.analyzePattern(eigen_A_); + solver_.factorize(eigen_A_); + if (solver_.info() != Eigen::Success) { + throw std::runtime_error("Eigen::SparseLU factorization failed"); + } +#else + A_ = A; // fallback +#endif + } + + vec solve(const vec& b) const { + if (static_cast(b.n_elem) != n_) { + throw std::runtime_error("SparseSolver::solve dimension mismatch"); + } +#if HAS_EIGEN + Eigen::Map rhs(b.memptr(), static_cast(b.n_elem)); + Eigen::VectorXd x = solver_.solve(rhs); + if (solver_.info() != Eigen::Success) { + throw std::runtime_error("Eigen::SparseLU solve failed"); + } + return vec(x.data(), static_cast(x.size())); +#else + vec x; + bool ok = arma::spsolve(x, A_, b); + if (!ok) { + throw std::runtime_error("arma::spsolve failed (no Eigen available)"); + } + return x; +#endif + } + + static bool using_eigen() { +#if HAS_EIGEN + return true; +#else + return false; +#endif + } + +private: + long long n_{0}; +#if HAS_EIGEN + Eigen::SparseMatrix eigen_A_; + Eigen::SparseLU, Eigen::COLAMDOrdering> solver_; +#else + sp_mat A_; +#endif +}; + +// Scalar BC wrapper +struct BCSide { + std::string type; // Dirichlet/Neumann/Robin + std::vector coeffs; // {a} or {b} or {a,b} + bool active{false}; +}; + +static BCSide make_side(double a, double b) { + BCSide s; + s.active = (a != 0.0) || (b != 0.0); + if (!s.active) { + s.type = "Dirichlet"; + s.coeffs = {0.0}; + return s; + } + if (a != 0.0 && b == 0.0) { + s.type = "Dirichlet"; + s.coeffs = {a}; + } else if (a == 0.0 && b != 0.0) { + s.type = "Neumann"; + s.coeffs = {b}; + } else { + s.type = "Robin"; + s.coeffs = {a, b}; + } + return s; +} + +static uvec bc_left_indices(unsigned m, unsigned n) { + uvec idx(n); + const unsigned nx = m + 2; + for (unsigned jj = 0; jj < n; ++jj) { + unsigned j = jj + 1; + idx(jj) = 0 + nx * j; + } + return idx; +} + +static uvec bc_right_indices(unsigned m, unsigned n) { + uvec idx(n); + const unsigned nx = m + 2; + const unsigned i = m + 1; + for (unsigned jj = 0; jj < n; ++jj) { + unsigned j = jj + 1; + idx(jj) = i + nx * j; + } + return idx; +} + +static uvec bc_bottom_indices(unsigned m, unsigned n) { + (void)n; + uvec idx(m + 2); + for (unsigned i = 0; i < m + 2; ++i) idx(i) = i; + return idx; +} + +static uvec bc_top_indices(unsigned m, unsigned n) { + uvec idx(m + 2); + const unsigned nx = m + 2; + const unsigned j = n + 1; + for (unsigned i = 0; i < m + 2; ++i) idx(i) = i + nx * j; + return idx; +} + +struct BCSystem { + sp_mat A_bc; + vec b0; + uvec rowsbc; +}; + +static BCSystem build_scalar_bc_system( + const sp_mat& A, + unsigned k, unsigned m, double dx, unsigned n, double dy, + const std::array& dc, const std::array& nc, + const std::array& v) { + + const arma::uword N = A.n_rows; + if (A.n_rows != A.n_cols) throw std::runtime_error("A must be square"); + + const BCSide left = make_side(dc[0], nc[0]); + const BCSide right = make_side(dc[1], nc[1]); + const BCSide bottom = make_side(dc[2], nc[2]); + const BCSide top = make_side(dc[3], nc[3]); + + MixedBC bc_op(static_cast(k), static_cast(m), dx, + static_cast(n), dy, + left.type, left.coeffs, + right.type, right.coeffs, + bottom.type, bottom.coeffs, + top.type, top.coeffs); + + std::vector pieces; + if (left.active) pieces.push_back(bc_left_indices(m, n)); + if (right.active) pieces.push_back(bc_right_indices(m, n)); + if (bottom.active) pieces.push_back(bc_bottom_indices(m, n)); + if (top.active) pieces.push_back(bc_top_indices(m, n)); + + uvec rowsbc; + if (!pieces.empty()) { + rowsbc = pieces[0]; + for (size_t i = 1; i < pieces.size(); ++i) rowsbc = arma::join_cols(rowsbc, pieces[i]); + rowsbc = arma::unique(rowsbc); + } else { + rowsbc.set_size(0); + } + + sp_mat P = arma::speye(N, N); + for (arma::uword ii = 0; ii < rowsbc.n_elem; ++ii) { + const arma::uword r = rowsbc(ii); + P(r, r) = 0.0; + } + + BCSystem out; + out.A_bc = P * A + static_cast(bc_op); + out.b0 = arma::zeros(N); + + if (left.active) out.b0.elem(bc_left_indices(m, n)) = v[0]; + if (right.active) out.b0.elem(bc_right_indices(m, n)) = v[1]; + if (bottom.active) out.b0.elem(bc_bottom_indices(m, n)) = v[2]; + if (top.active) out.b0.elem(bc_top_indices(m, n)) = v[3]; + + out.rowsbc = rowsbc; + return out; +} + +// quick grayscale PPM +static void write_ppm_grayscale(const std::string& filename, const mat& field) { + const arma::uword nx = field.n_rows; + const arma::uword ny = field.n_cols; + + double fmin = field.min(); + double fmax = field.max(); + if (!std::isfinite(fmin) || !std::isfinite(fmax) || fmax <= fmin) { + throw std::runtime_error("write_ppm_grayscale: invalid range"); + } + + std::ofstream os(filename, std::ios::binary); + if (!os) throw std::runtime_error("Failed to open output image: " + filename); + + os << "P6\n" << nx << " " << ny << "\n255\n"; + + for (arma::sword j = static_cast(ny) - 1; j >= 0; --j) { + for (arma::uword i = 0; i < nx; ++i) { + double t = (field(i, static_cast(j)) - fmin) / (fmax - fmin); + t = std::min(1.0, std::max(0.0, t)); + unsigned char g = static_cast(std::lround(255.0 * t)); + unsigned char rgb[3] = {g, g, g}; + os.write(reinterpret_cast(rgb), 3); + } + } +} + +// enforce inlet/outlet/walls + cylinder +static void applyVelocityBCAndMask( + mat& U, mat& V, + double Uin, + int i1, int i2, int j1, int j2) { + + const arma::uword nx = U.n_rows; + const arma::uword ny = U.n_cols; + + U.row(0).fill(Uin); + V.row(0).zeros(); + + U.row(nx - 1) = U.row(nx - 2); + V.row(nx - 1) = V.row(nx - 2); + + U.submat(1, 0, nx - 1, 0).zeros(); + V.submat(1, 0, nx - 1, 0).zeros(); + U.submat(1, ny - 1, nx - 1, ny - 1).zeros(); + V.submat(1, ny - 1, nx - 1, ny - 1).zeros(); + + U(0, 0) = 0.0; U(0, ny - 1) = 0.0; + V(0, 0) = 0.0; V(0, ny - 1) = 0.0; + + U.submat(i1, j1, i2, j2).zeros(); + V.submat(i1, j1, i2, j2).zeros(); +} + +int main() { + // Problem parameters (numerical settings) + const double Re = 200.0; + const unsigned k = 2; + const double tspan = 32.0; + const double dt = 0.005; + + // Domain and grid + const double x_start = 0.0, x_end = 8.0; + const double y_start = -1.0, y_end = 1.0; + const unsigned m = 481; + const unsigned n = 121; + const double dx = (x_end - x_start) / static_cast(m); + const double dy = (y_end - y_start) / static_cast(n); + + // Obstacle (cylinder) geometry parameters + const double cylin_pos = 1.0 / 8.0; + const double cylin_size = 1.0 / 10.0; + + // Physical parameters + const double rho = 1.0; + const double D0 = 2.0 * cylin_size; + const double U_init = 1.0; + const double nu = U_init * D0 / Re; + + const arma::uword nx = m + 2; + const arma::uword ny = n + 2; + const arma::uword Ncell = nx * ny; + const arma::uword Nfaces_x = (m + 1) * n; + const arma::uword Nfaces_y = m * (n + 1); + const arma::uword Nfaces = Nfaces_x + Nfaces_y; + + std::cout << "Ncell=" << Ncell << ", Nfaces=" << Nfaces + << " (" << Nfaces_x << "+" << Nfaces_y << ")\n"; + +#if !HAS_EIGEN + std::cerr << "[warn] Eigen headers not found; using arma::spsolve.\n"; +#endif + + // Construct mimetic operators (MOLE) + Laplacian L(static_cast(k), static_cast(m), static_cast(n), dx, dy); + Divergence D(static_cast(k), static_cast(m), static_cast(n), dx, dy); + Gradient G(static_cast(k), static_cast(m), static_cast(n), dx, dy); + + Interpol I_cf(static_cast(m), static_cast(n), 0.5, 0.5); + Interpol Ix_fc(true, static_cast(m), 0.5); + Interpol Iy_fc(true, static_cast(n), 0.5); + + sp_mat Im(nx, m); + Im.submat(1, 0, m, m - 1) = arma::speye(m, m); + + sp_mat In(ny, n); + In.submat(1, 0, n, n - 1) = arma::speye(n, n); + + sp_mat Sx = Utils::spkron(In, static_cast(Ix_fc)); + sp_mat Sy = Utils::spkron(static_cast(Iy_fc), Im); + + // AB2 + CN diffusion + sp_mat Icell = arma::speye(Ncell, Ncell); + sp_mat M = Icell - (0.5 * dt * nu) * static_cast(L); + sp_mat Mp = Icell + (0.5 * dt * nu) * static_cast(L); + + // Initial conditions / fields + mat U(nx, ny, arma::fill::ones); + U *= U_init; + mat V(nx, ny, arma::fill::zeros); + + const int m_unit = static_cast(std::floor(cylin_pos * static_cast(m))); + const int halfN1 = static_cast(0.5 * static_cast(n + 3)); + const int rad = static_cast(std::floor(cylin_size * static_cast(m_unit))); + + const int i1 = (m_unit - rad) - 1; + const int i2 = (m_unit + rad) - 1; + const int j1 = (halfN1 - rad) - 1; + const int j2 = (halfN1 + rad) - 1; + + U.submat(i1, j1, i2, j2).zeros(); + V.submat(i1, j1, i2, j2).zeros(); + + vec U_flat = arma::vectorise(U); + vec V_flat = arma::vectorise(V); + + vec AdvU_prev(Ncell, arma::fill::zeros); + vec AdvV_prev(Ncell, arma::fill::zeros); + vec p_new_flat(Ncell, arma::fill::zeros); + + // Velocity Helmholtz operator boundary conditions + const std::array dcU = {1, 0, 1, 1}; + const std::array ncU = {0, 1, 0, 0}; + std::array vU = { + vec(n, arma::fill::ones), + vec(n, arma::fill::zeros), + vec(nx, arma::fill::zeros), + vec(nx, arma::fill::zeros) + }; + + const std::array dcV = {1, 0, 1, 1}; + const std::array ncV = {0, 1, 0, 0}; + std::array vV = { + vec(n, arma::fill::zeros), + vec(n, arma::fill::zeros), + vec(nx, arma::fill::zeros), + vec(nx, arma::fill::zeros) + }; + + BCSystem bcU = build_scalar_bc_system(M, k, m, dx, n, dy, dcU, ncU, vU); + BCSystem bcV = build_scalar_bc_system(M, k, m, dx, n, dy, dcV, ncV, vV); + + SparseSolver Au_solver, Av_solver; + Au_solver.factorize(bcU.A_bc); + Av_solver.factorize(bcV.A_bc); + + // Pressure Poisson operator boundary conditions + const std::array dcP = {0, 1, 0, 0}; + const std::array ncP = {1, 0, 1, 1}; + std::array vP = { + vec(n, arma::fill::zeros), + vec(n, arma::fill::zeros), + vec(nx, arma::fill::zeros), + vec(nx, arma::fill::zeros) + }; + + BCSystem bcP = build_scalar_bc_system(static_cast(L), k, m, dx, n, dy, dcP, ncP, vP); + SparseSolver Ap_solver; + Ap_solver.factorize(bcP.A_bc); + + const int nSteps = static_cast(std::llround(tspan / dt)); + const int plotEvery = 100; + + // Time integration loop + for (int step = 1; step <= nSteps; ++step) { + vec U_faces = static_cast(I_cf) * U_flat; + vec V_faces = static_cast(I_cf) * V_flat; + + vec U_on_u = U_faces.head(Nfaces_x); + vec U_on_v = U_faces.tail(Nfaces_y); + + vec V_on_u = V_faces.head(Nfaces_x); + vec V_on_v = V_faces.tail(Nfaces_y); + + vec UU_on_u = U_on_u % U_on_u; + vec UV_on_u = U_on_u % V_on_u; + + vec VV_on_v = V_on_v % V_on_v; + vec UV_on_v = U_on_v % V_on_v; + + vec u_div = arma::join_cols(UU_on_u, UV_on_v); + vec v_div = arma::join_cols(UV_on_u, VV_on_v); + + vec AdvU_n = static_cast(D) * u_div; + vec AdvV_n = static_cast(D) * v_div; + + vec AdvU_ab, AdvV_ab; + if (step == 1) { + AdvU_ab = AdvU_n; + AdvV_ab = AdvV_n; + } else { + AdvU_ab = 1.5 * AdvU_n - 0.5 * AdvU_prev; + AdvV_ab = 1.5 * AdvV_n - 0.5 * AdvV_prev; + } + + vec rhsU = Mp * U_flat - dt * AdvU_ab; + vec rhsV = Mp * V_flat - dt * AdvV_ab; + + rhsU.elem(bcU.rowsbc).zeros(); + rhsV.elem(bcV.rowsbc).zeros(); + rhsU += bcU.b0; + rhsV += bcV.b0; + + vec U_star_flat = Au_solver.solve(rhsU); + vec V_star_flat = Av_solver.solve(rhsV); + + mat U_star = arma::reshape(U_star_flat, nx, ny); + mat V_star = arma::reshape(V_star_flat, nx, ny); + + U_star.submat(i1, j1, i2, j2).zeros(); + V_star.submat(i1, j1, i2, j2).zeros(); + U_star(0, 0) = 0.0; U_star(0, ny - 1) = 0.0; + V_star(0, 0) = 0.0; V_star(0, ny - 1) = 0.0; + + U_star_flat = arma::vectorise(U_star); + V_star_flat = arma::vectorise(V_star); + + vec U_star_faces = static_cast(I_cf) * U_star_flat; + vec V_star_faces = static_cast(I_cf) * V_star_flat; + + vec U_star_on_u = U_star_faces.head(Nfaces_x); + vec V_star_on_v = V_star_faces.tail(Nfaces_y); + + vec UV_star_div = arma::join_cols(U_star_on_u, V_star_on_v); + vec RHS = (rho / dt) * (static_cast(D) * UV_star_div); + + RHS.elem(bcP.rowsbc).zeros(); + RHS += bcP.b0; + + p_new_flat = Ap_solver.solve(RHS); + + vec gradp_faces = static_cast(G) * p_new_flat; + vec gradp_x = gradp_faces.head(Nfaces_x); + vec gradp_y = gradp_faces.tail(Nfaces_y); + + vec u_corr = Sx * gradp_x; + vec v_corr = Sy * gradp_y; + + vec U_new_flat = U_star_flat - (dt / rho) * u_corr; + vec V_new_flat = V_star_flat - (dt / rho) * v_corr; + + mat U_new = arma::reshape(U_new_flat, nx, ny); + mat V_new = arma::reshape(V_new_flat, nx, ny); + + applyVelocityBCAndMask(U_new, V_new, U_init, i1, i2, j1, j2); + + U_flat = arma::vectorise(U_new); + V_flat = arma::vectorise(V_new); + AdvU_prev = AdvU_n; + AdvV_prev = AdvV_n; + + if ((step % plotEvery) == 0 || step == 1 || step == nSteps) { + const double maxU = arma::abs(U_new).max(); + const double maxV = arma::abs(V_new).max(); + const double umax = maxU; + const double vmax = maxV; + const double CFL = dt * (umax / dx + vmax / dy); + const double inletMean = arma::mean(U_new.row(0)); + + std::cout << "step " << std::setw(6) << step << "/" << std::setw(6) << nSteps + << " | t=" << std::fixed << std::setprecision(6) << (dt * step) + << " | CFL~" << std::setprecision(3) << CFL + << " | max|U|=" << std::scientific << std::setprecision(3) << maxU + << " | max|V|=" << std::scientific << std::setprecision(3) << maxV + << " | mean(U_in)=" << std::fixed << std::setprecision(3) << inletMean + << "\n"; + } + } + + // Output: save fields and a quick visualization image + { + mat U_final = arma::reshape(U_flat, nx, ny); + mat V_final = arma::reshape(V_flat, nx, ny); + mat p_final = arma::reshape(p_new_flat, nx, ny); + + U_final.save("U_final.csv", arma::csv_ascii); + V_final.save("V_final.csv", arma::csv_ascii); + p_final.save("p_final.csv", arma::csv_ascii); + + mat speed = arma::sqrt(arma::square(U_final) + arma::square(V_final)); + + const std::string ppmFile = "speed_final.ppm"; + const std::string pngFile = "speed_final.png"; + write_ppm_grayscale(ppmFile, speed); + +#ifdef __APPLE__ + { + std::string cmd = "sips -s format png " + ppmFile + " --out " + pngFile + " >/dev/null 2>&1"; + int rc = std::system(cmd.c_str()); + if (rc == 0) { + std::remove(ppmFile.c_str()); + } else { + std::cerr << "[warn] PNG conversion failed (sips). Kept " << ppmFile << "\n"; + } + } +#else + std::cerr << "[warn] PNG conversion uses macOS 'sips'. Kept " << ppmFile << "\n"; +#endif + + std::cout << "Wrote U_final.csv, V_final.csv, p_final.csv, speed_final.png\n"; + } + + return 0; +} From 91f2456fb5c9c3da92c6906bf241e547c966d120 Mon Sep 17 00:00:00 2001 From: yiyuef Date: Fri, 6 Feb 2026 18:25:22 -0800 Subject: [PATCH 02/17] markdown change --- .../Navier-Stokes/Cylinder-Flow-2D.md | 116 +++++++++--------- 1 file changed, 59 insertions(+), 57 deletions(-) diff --git a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md index 9c036222..835e02a2 100644 --- a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md +++ b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md @@ -5,19 +5,18 @@ This example simulates a 2D incompressible channel flow past a cylinder-like obs ## Governing Equations We solve the incompressible Navier–Stokes equations in two dimensions: - -\[ +$$ \frac{\partial \mathbf{u}}{\partial t} + (\mathbf{u}\cdot\nabla)\mathbf{u} = -\frac{1}{\rho}\nabla p + \nu \nabla^{2}\mathbf{u}, \qquad \nabla\cdot\mathbf{u} = 0, -\] +$$ where: -- \(\mathbf{u}=(u,v)\) is the velocity field, -- \(p\) is the kinematic pressure, -- \(\rho\) is the density, -- \(\nu\) is the kinematic viscosity. +- $\mathbf{u}=(u,v)$ is the velocity field, +- $p$ is the kinematic pressure, +- $\rho$ is the density, +- $\nu$ is the kinematic viscosity. ## Domain and Initial/Boundary Conditions @@ -25,59 +24,62 @@ where: The computational domain is a 2D channel: -- \(x \in [0,8]\), -- \(y \in [-1,1]\), -- \(t \in [0, t_{\text{final}}]\) with \(t_{\text{final}}=\) `tspan` (default in code: `tspan = 32.0`). +- $x \in [0,8]$, +- $y \in [-1,1]$, +- $t \in [0, t_{\text{final}}]$ with $t_{\text{final}}=$ `tspan` (default in code: `tspan = 32.0`). -A “cylinder” is represented by a masked block of cells located near \(x/L_x =\) `cylin_pos` (default `1/8`) with a size controlled by `cylin_size` (default `1/10`). Inside this mask, velocity is forced to zero (no-slip). +A “cylinder” is represented by a masked block of cells located near $x/L_x =$ `cylin_pos` (default `1/8`) with a size controlled by `cylin_size` (default `1/10`). Inside this mask, velocity is forced to zero (no-slip). ### Initial Conditions (time-dependent) -At \(t=0\): -- \(u(x,y,0)=U_0\) everywhere in the fluid region, -- \(v(x,y,0)=0\), -- and the obstacle mask region is set to \(u=v=0\). +At $t=0$: +- $u(x,y,0)=U_0$ everywhere in the fluid region, +- $v(x,y,0)=0$, +- and the obstacle mask region is set to $u=v=0$. (Default in code: `U_init = 1.0`.) ### Boundary Conditions Velocity boundary conditions: -- **Inlet (left)**: Dirichlet inflow - \[ - u = U_0, \qquad v=0. - \] -- **Outlet (right)**: zero streamwise gradient (Neumann outflow) - \[ - \frac{\partial u}{\partial x}=0, \qquad \frac{\partial v}{\partial x}=0. - \] -- **Top and bottom walls**: no-slip - \[ - u=0,\qquad v=0. - \] -- **Obstacle mask**: no-slip enforced by projection back to \(u=v=0\) in the masked region after each time step. +- **Inlet (left)**: Dirichlet inflow + $$ +u = U_0, \qquad v=0. +$$ + +- **Outlet (right)**: zero streamwise gradient (Neumann outflow) + $$ +\frac{\partial u}{\partial x}=0, \qquad \frac{\partial v}{\partial x}=0. +$$ + +- **Top and bottom walls**: no-slip + $$ +u=0,\qquad v=0. +$$ + +- **Obstacle mask**: no-slip enforced by projection back to $u=v=0$ in the masked region after each time step. Pressure boundary conditions (pressure Poisson step): -- **Outlet (right)**: Dirichlet reference pressure - \[ - p = 0. - \] -- **Other boundaries**: homogeneous Neumann - \[ - \frac{\partial p}{\partial n}=0. - \] +- **Outlet (right)**: Dirichlet reference pressure + $$ +p = 0. +$$ + +- **Other boundaries**: homogeneous Neumann + $$ +\frac{\partial p}{\partial n}=0. +$$ ## Mathematical Background “Flow past a cylinder in a channel” is a classic benchmark. In this example, the cylinder is approximated by an axis-aligned mask region (immersed-boundary-style enforcement by zeroing velocity in the masked cells). This provides a simple obstacle treatment while demonstrating how MOLE operators can be used to build a full incompressible flow solver. -The Reynolds number is defined using a characteristic diameter \(D\) and inlet speed \(U_0\): - -\[ +The Reynolds number is defined using a characteristic diameter $D$ and inlet speed $U_0$: +$$ \mathrm{Re} = \frac{U_0 D}{\nu}. -\] +$$ -In the implementation, \(D = 2\,\texttt{cylin\_size}\) and \(\nu = U_0 D/\mathrm{Re}\) (default: \(\mathrm{Re}=200\)). +In the implementation, $D = 2\,\texttt{cylin\_size}$ and $\nu = U_0 D/\mathrm{Re}$ (default: $\mathrm{Re}=200$). ## Implementation Details @@ -89,28 +91,28 @@ Each time step advances the momentum equation and enforces incompressibility: - Nonlinear convection is advanced with AB2 (Adams–Bashforth 2), with AB1 used on the first step. 2. **Diffusion (Helmholtz solve)** - - Viscous diffusion is treated with Crank–Nicolson, resulting in two Helmholtz-type sparse linear systems for intermediate velocities \(u^*, v^*\). + - Viscous diffusion is treated with Crank–Nicolson, resulting in two Helmholtz-type sparse linear systems for intermediate velocities $u^*, v^*$. 3. **Pressure Poisson solve** - - Pressure is obtained from the Poisson equation derived from \(\nabla\cdot\mathbf{u}^{n+1}=0\): - \[ - \nabla^2 p^{n+1} = \frac{\rho}{\Delta t}\nabla\cdot \mathbf{u}^*. - \] + - Pressure is obtained from the Poisson equation derived from $\nabla\cdot\mathbf{u}^{n+1}=0$: + $$ +\nabla^2 p^{n+1} = \frac{\rho}{\Delta t}\nabla\cdot \mathbf{u}^*. +$$ 4. **Velocity correction** - \[ - \mathbf{u}^{n+1} = \mathbf{u}^* - \frac{\Delta t}{\rho}\nabla p^{n+1}. - \] + $$ +\mathbf{u}^{n+1} = \mathbf{u}^* - \frac{\Delta t}{\rho}\nabla p^{n+1}. +$$ 5. **Re-apply boundary conditions + obstacle mask** - - The solver re-enforces all velocity BCs and sets the masked region to \(u=v=0\). + - The solver re-enforces all velocity BCs and sets the masked region to $u=v=0$. ### Mimetic Spatial Operators (MOLE) The spatial discretization uses MOLE operators: -- Divergence operator \(D\), -- Gradient operator \(G\), -- Laplacian operator \(L = DG\), +- Divergence operator $D$, +- Gradient operator $G$, +- Laplacian operator $L = DG$, along with interpolation operators to map between cell-centered and face-based quantities used in flux evaluations and in the projection step. @@ -132,7 +134,7 @@ cmake --build . -j ## Results -The final speed magnitude typically shows an acceleration around the obstacle and a wake downstream. At \(\mathrm{Re}=200\), unsteady vortex shedding can appear depending on grid/time-step choices and the obstacle mask representation. +The final speed magnitude typically shows an acceleration around the obstacle and a wake downstream. At $\mathrm{Re}=200$, unsteady vortex shedding can appear depending on grid/time-step choices and the obstacle mask representation. ```{figure} cylinder_flow_2D_output1.png :alt: Final speed magnitude for 2D channel flow past a masked cylinder obstacle. @@ -144,7 +146,7 @@ Final speed magnitude field for the 2D channel flow with a masked “cylinder” ### Validation / Analytical Solution No closed-form analytical solution is available for this configuration. Practical validation options include: -- verifying that \(\|\nabla\cdot\mathbf{u}\|\) remains small after the projection step, +- verifying that $\|\nabla\cdot\mathbf{u}\|$ remains small after the projection step, - comparing qualitative wake structure and shedding behavior with known channel-cylinder benchmarks, - and performing grid/time-step refinement studies. @@ -156,6 +158,6 @@ This example is implemented in: #### Variants Possible variants (not included by default) that are useful for exploration: -- different Reynolds numbers (e.g., \(50 \le \mathrm{Re} \le 500\)), -- refining \(m \times n\) resolution to reduce numerical diffusion, +- different Reynolds numbers (e.g., $50 \le \mathrm{Re} \le 500$), +- refining $m \times n$ resolution to reduce numerical diffusion, - replacing the rectangular mask by a more geometric obstacle treatment (if desired). From 9469e6f253bdab2c1e4f3cf1ddcf7042da770d92 Mon Sep 17 00:00:00 2001 From: yiyuef Date: Fri, 6 Feb 2026 19:35:31 -0800 Subject: [PATCH 03/17] md --- .../Navier-Stokes/Cylinder-Flow-2D.md | 54 ++++++------------- 1 file changed, 17 insertions(+), 37 deletions(-) diff --git a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md index 835e02a2..65c23ccc 100644 --- a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md +++ b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md @@ -5,12 +5,8 @@ This example simulates a 2D incompressible channel flow past a cylinder-like obs ## Governing Equations We solve the incompressible Navier–Stokes equations in two dimensions: -$$ -\frac{\partial \mathbf{u}}{\partial t} + (\mathbf{u}\cdot\nabla)\mathbf{u} -= -\frac{1}{\rho}\nabla p + \nu \nabla^{2}\mathbf{u}, -\qquad -\nabla\cdot\mathbf{u} = 0, -$$ + +$$\frac{\partial \mathbf{u}}{\partial t} + (\mathbf{u}\cdot\nabla)\mathbf{u}= -\frac{1}{\rho}\nabla p + \nu \nabla^{2}\mathbf{u},\qquad\nabla\cdot\mathbf{u} = 0$$ where: - $\mathbf{u}=(u,v)$ is the velocity field, @@ -42,41 +38,23 @@ At $t=0$: ### Boundary Conditions Velocity boundary conditions: -- **Inlet (left)**: Dirichlet inflow - $$ -u = U_0, \qquad v=0. -$$ - -- **Outlet (right)**: zero streamwise gradient (Neumann outflow) - $$ -\frac{\partial u}{\partial x}=0, \qquad \frac{\partial v}{\partial x}=0. -$$ - -- **Top and bottom walls**: no-slip - $$ -u=0,\qquad v=0. -$$ - -- **Obstacle mask**: no-slip enforced by projection back to $u=v=0$ in the masked region after each time step. +- **Inlet (left)**: Dirichlet inflow, $u = U_0$ and $v = 0$. +- **Outlet (right)**: zero streamwise gradient (Neumann outflow), $\partial u/\partial x = 0$ and $\partial v/\partial x = 0$. +- **Top and bottom walls**: no-slip, $u=0$ and $v=0$. +- **Obstacle mask**: no-slip enforced by setting $u=v=0$ inside the mask region after each time step. Pressure boundary conditions (pressure Poisson step): -- **Outlet (right)**: Dirichlet reference pressure - $$ -p = 0. -$$ - -- **Other boundaries**: homogeneous Neumann - $$ -\frac{\partial p}{\partial n}=0. -$$ +- **Outlet (right)**: Dirichlet reference pressure, $p = 0$. +- **Other boundaries**: homogeneous Neumann, $\partial p/\partial n = 0$. ## Mathematical Background “Flow past a cylinder in a channel” is a classic benchmark. In this example, the cylinder is approximated by an axis-aligned mask region (immersed-boundary-style enforcement by zeroing velocity in the masked cells). This provides a simple obstacle treatment while demonstrating how MOLE operators can be used to build a full incompressible flow solver. The Reynolds number is defined using a characteristic diameter $D$ and inlet speed $U_0$: + $$ -\mathrm{Re} = \frac{U_0 D}{\nu}. +\mathrm{Re} = \frac{U_0 D}{\nu} $$ In the implementation, $D = 2\,\texttt{cylin\_size}$ and $\nu = U_0 D/\mathrm{Re}$ (default: $\mathrm{Re}=200$). @@ -94,14 +72,16 @@ Each time step advances the momentum equation and enforces incompressibility: - Viscous diffusion is treated with Crank–Nicolson, resulting in two Helmholtz-type sparse linear systems for intermediate velocities $u^*, v^*$. 3. **Pressure Poisson solve** - - Pressure is obtained from the Poisson equation derived from $\nabla\cdot\mathbf{u}^{n+1}=0$: - $$ -\nabla^2 p^{n+1} = \frac{\rho}{\Delta t}\nabla\cdot \mathbf{u}^*. + - Pressure is obtained from the Poisson equation derived from $\nabla\cdot\mathbf{u}^{n+1}=0$: + +$$ +\nabla^2 p^{n+1} = \frac{\rho}{\Delta t}\nabla\cdot \mathbf{u}^* $$ 4. **Velocity correction** - $$ -\mathbf{u}^{n+1} = \mathbf{u}^* - \frac{\Delta t}{\rho}\nabla p^{n+1}. + +$$ +\mathbf{u}^{n+1} = \mathbf{u}^* - \frac{\Delta t}{\rho}\nabla p^{n+1} $$ 5. **Re-apply boundary conditions + obstacle mask** From a2afd612cbcb5eb1981a9954cafa8feeb419ac68 Mon Sep 17 00:00:00 2001 From: yiyuef Date: Fri, 6 Feb 2026 22:43:42 -0800 Subject: [PATCH 04/17] md --- .../Navier-Stokes/Cylinder-Flow-2D.md | 81 ++++++++++-------- ...1.png.png => cylinder_flow_2D_output1.png} | Bin 2 files changed, 43 insertions(+), 38 deletions(-) rename doc/sphinx/source/examples/Navier-Stokes/{cylinder_flow_2D_output1.png.png => cylinder_flow_2D_output1.png} (100%) diff --git a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md index 65c23ccc..5329bdb2 100644 --- a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md +++ b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md @@ -6,13 +6,19 @@ This example simulates a 2D incompressible channel flow past a cylinder-like obs We solve the incompressible Navier–Stokes equations in two dimensions: -$$\frac{\partial \mathbf{u}}{\partial t} + (\mathbf{u}\cdot\nabla)\mathbf{u}= -\frac{1}{\rho}\nabla p + \nu \nabla^{2}\mathbf{u},\qquad\nabla\cdot\mathbf{u} = 0$$ +$$ +\begin{aligned} +\frac{\partial \mathbf{u}}{\partial t} + (\mathbf{u}\cdot\nabla)\mathbf{u} +&= -\frac{1}{\rho}\nabla p + \nu\nabla^{2}\mathbf{u} \\ +\nabla\cdot\mathbf{u} &= 0 +\end{aligned} +$$ where: -- $\mathbf{u}=(u,v)$ is the velocity field, -- $p$ is the kinematic pressure, -- $\rho$ is the density, -- $\nu$ is the kinematic viscosity. +- $$\mathbf{u}=(u,v)$$ is the velocity field +- $$p$$ is the kinematic pressure +- $$\rho$$ is the density +- $$\nu$$ is the kinematic viscosity ## Domain and Initial/Boundary Conditions @@ -20,44 +26,44 @@ where: The computational domain is a 2D channel: -- $x \in [0,8]$, -- $y \in [-1,1]$, -- $t \in [0, t_{\text{final}}]$ with $t_{\text{final}}=$ `tspan` (default in code: `tspan = 32.0`). +- $$x \in [0,8]$$ +- $$y \in [-1,1]$$ +- $$t \in [0, t_{\text{final}}]$$ with $$t_{\text{final}} = \texttt{tspan}$$ (default in code: `tspan = 32.0`) -A “cylinder” is represented by a masked block of cells located near $x/L_x =$ `cylin_pos` (default `1/8`) with a size controlled by `cylin_size` (default `1/10`). Inside this mask, velocity is forced to zero (no-slip). +A “cylinder” is represented by a masked block of cells located near $$x/L_x = \texttt{cylin\_pos}$$ (default `1/8`) with a size controlled by `cylin_size` (default `1/10`). Inside this mask, velocity is forced to zero (no-slip). ### Initial Conditions (time-dependent) -At $t=0$: -- $u(x,y,0)=U_0$ everywhere in the fluid region, -- $v(x,y,0)=0$, -- and the obstacle mask region is set to $u=v=0$. +At $$t=0$$: +- $$u(x,y,0)=U_0$$ everywhere in the fluid region +- $$v(x,y,0)=0$$ +- the obstacle mask region is set to $$u=v=0$$ (Default in code: `U_init = 1.0`.) ### Boundary Conditions Velocity boundary conditions: -- **Inlet (left)**: Dirichlet inflow, $u = U_0$ and $v = 0$. -- **Outlet (right)**: zero streamwise gradient (Neumann outflow), $\partial u/\partial x = 0$ and $\partial v/\partial x = 0$. -- **Top and bottom walls**: no-slip, $u=0$ and $v=0$. -- **Obstacle mask**: no-slip enforced by setting $u=v=0$ inside the mask region after each time step. +- **Inlet (left)**: Dirichlet inflow with $$u = U_0$$ and $$v = 0$$ +- **Outlet (right)**: zero streamwise gradient (Neumann outflow) with $$\partial u/\partial x = 0$$ and $$\partial v/\partial x = 0$$ +- **Top and bottom walls**: no-slip with $$u=0$$ and $$v=0$$ +- **Obstacle mask**: no-slip enforced by setting $$u=v=0$$ inside the mask region after each time step Pressure boundary conditions (pressure Poisson step): -- **Outlet (right)**: Dirichlet reference pressure, $p = 0$. -- **Other boundaries**: homogeneous Neumann, $\partial p/\partial n = 0$. +- **Outlet (right)**: Dirichlet reference pressure with $$p = 0$$ +- **Other boundaries**: homogeneous Neumann with $$\partial p/\partial n = 0$$ ## Mathematical Background “Flow past a cylinder in a channel” is a classic benchmark. In this example, the cylinder is approximated by an axis-aligned mask region (immersed-boundary-style enforcement by zeroing velocity in the masked cells). This provides a simple obstacle treatment while demonstrating how MOLE operators can be used to build a full incompressible flow solver. -The Reynolds number is defined using a characteristic diameter $D$ and inlet speed $U_0$: +The Reynolds number is defined using a characteristic diameter $$D$$ and inlet speed $$U_0$$: $$ \mathrm{Re} = \frac{U_0 D}{\nu} $$ -In the implementation, $D = 2\,\texttt{cylin\_size}$ and $\nu = U_0 D/\mathrm{Re}$ (default: $\mathrm{Re}=200$). +In the implementation, $$D = 2\texttt{cylin\_size}$$ and $$\nu = U_0 D/\mathrm{Re}$$ (default $$\mathrm{Re}=200$$). ## Implementation Details @@ -66,13 +72,13 @@ In the implementation, $D = 2\,\texttt{cylin\_size}$ and $\nu = U_0 D/\mathrm{Re Each time step advances the momentum equation and enforces incompressibility: 1. **Advection evaluation** - - Nonlinear convection is advanced with AB2 (Adams–Bashforth 2), with AB1 used on the first step. + - Nonlinear convection is advanced with AB2 (Adams–Bashforth 2), with AB1 used on the first step 2. **Diffusion (Helmholtz solve)** - - Viscous diffusion is treated with Crank–Nicolson, resulting in two Helmholtz-type sparse linear systems for intermediate velocities $u^*, v^*$. + - Viscous diffusion is treated with Crank–Nicolson, resulting in two Helmholtz-type sparse linear systems for intermediate velocities $$u^*$$ and $$v^*$$ 3. **Pressure Poisson solve** - - Pressure is obtained from the Poisson equation derived from $\nabla\cdot\mathbf{u}^{n+1}=0$: + - Pressure is obtained from the Poisson equation derived from $$\nabla\cdot\mathbf{u}^{n+1}=0$$ $$ \nabla^2 p^{n+1} = \frac{\rho}{\Delta t}\nabla\cdot \mathbf{u}^* @@ -85,23 +91,22 @@ $$ $$ 5. **Re-apply boundary conditions + obstacle mask** - - The solver re-enforces all velocity BCs and sets the masked region to $u=v=0$. + - The solver re-enforces all velocity BCs and sets the masked region to $$u=v=0$$ ### Mimetic Spatial Operators (MOLE) The spatial discretization uses MOLE operators: -- Divergence operator $D$, -- Gradient operator $G$, -- Laplacian operator $L = DG$, +- Divergence operator $$D$$ +- Gradient operator $$G$$ +- Laplacian operator $$L = DG$$ along with interpolation operators to map between cell-centered and face-based quantities used in flux evaluations and in the projection step. ### Output Products The example writes: -- `U_final.csv`, `V_final.csv`, `p_final.csv` (cell-centered fields), -- and an image of the final speed field: - - `cylinder_flow_2D_output1.png` (this page embeds it as a figure) +- `U_final.csv`, `V_final.csv`, `p_final.csv` (cell-centered fields) +- an image of the final speed field named `cylinder_flow_2D_output1.png` (this page embeds it as a figure) ## Running the Example @@ -114,7 +119,7 @@ cmake --build . -j ## Results -The final speed magnitude typically shows an acceleration around the obstacle and a wake downstream. At $\mathrm{Re}=200$, unsteady vortex shedding can appear depending on grid/time-step choices and the obstacle mask representation. +The final speed magnitude typically shows an acceleration around the obstacle and a wake downstream. At $$\mathrm{Re}=200$$, unsteady vortex shedding can appear depending on grid/time-step choices and the obstacle mask representation. ```{figure} cylinder_flow_2D_output1.png :alt: Final speed magnitude for 2D channel flow past a masked cylinder obstacle. @@ -126,9 +131,9 @@ Final speed magnitude field for the 2D channel flow with a masked “cylinder” ### Validation / Analytical Solution No closed-form analytical solution is available for this configuration. Practical validation options include: -- verifying that $\|\nabla\cdot\mathbf{u}\|$ remains small after the projection step, -- comparing qualitative wake structure and shedding behavior with known channel-cylinder benchmarks, -- and performing grid/time-step refinement studies. +- verifying that $$\|\nabla\cdot\mathbf{u}\|$$ remains small after the projection step +- comparing qualitative wake structure and shedding behavior with known channel-cylinder benchmarks +- performing grid/time-step refinement studies --- @@ -138,6 +143,6 @@ This example is implemented in: #### Variants Possible variants (not included by default) that are useful for exploration: -- different Reynolds numbers (e.g., $50 \le \mathrm{Re} \le 500$), -- refining $m \times n$ resolution to reduce numerical diffusion, -- replacing the rectangular mask by a more geometric obstacle treatment (if desired). +- different Reynolds numbers such as $$50 \le \mathrm{Re} \le 500$$ +- refining $$m \times n$$ resolution to reduce numerical diffusion +- replacing the rectangular mask by a more geometric obstacle treatment (if desired) diff --git a/doc/sphinx/source/examples/Navier-Stokes/cylinder_flow_2D_output1.png.png b/doc/sphinx/source/examples/Navier-Stokes/cylinder_flow_2D_output1.png similarity index 100% rename from doc/sphinx/source/examples/Navier-Stokes/cylinder_flow_2D_output1.png.png rename to doc/sphinx/source/examples/Navier-Stokes/cylinder_flow_2D_output1.png From 62528d01bd79c05bbdb38c6133e31d8bba9b01d4 Mon Sep 17 00:00:00 2001 From: yiyuef Date: Fri, 6 Feb 2026 22:46:23 -0800 Subject: [PATCH 05/17] md --- .../source/examples/Navier-Stokes/Cylinder-Flow-2D.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md index 5329bdb2..a108c8b3 100644 --- a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md +++ b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md @@ -6,13 +6,9 @@ This example simulates a 2D incompressible channel flow past a cylinder-like obs We solve the incompressible Navier–Stokes equations in two dimensions: -$$ -\begin{aligned} -\frac{\partial \mathbf{u}}{\partial t} + (\mathbf{u}\cdot\nabla)\mathbf{u} -&= -\frac{1}{\rho}\nabla p + \nu\nabla^{2}\mathbf{u} \\ -\nabla\cdot\mathbf{u} &= 0 -\end{aligned} -$$ +$$ \frac{\partial \mathbf{u}}{\partial t} + (\mathbf{u}\cdot\nabla)\mathbf{u}&= -\frac{1}{\rho}\nabla p+ \nu\nabla^{2}\mathbf{u} $$ \\ + +$$ \nabla\cdot\mathbf{u} &= 0 $$ where: - $$\mathbf{u}=(u,v)$$ is the velocity field From 20e79640c96be5d6a7ad27e03d7b3c9c71f2c9d4 Mon Sep 17 00:00:00 2001 From: yiyuef Date: Fri, 6 Feb 2026 22:47:02 -0800 Subject: [PATCH 06/17] md --- doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md index a108c8b3..a327b191 100644 --- a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md +++ b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md @@ -6,9 +6,9 @@ This example simulates a 2D incompressible channel flow past a cylinder-like obs We solve the incompressible Navier–Stokes equations in two dimensions: -$$ \frac{\partial \mathbf{u}}{\partial t} + (\mathbf{u}\cdot\nabla)\mathbf{u}&= -\frac{1}{\rho}\nabla p+ \nu\nabla^{2}\mathbf{u} $$ \\ +$$\frac{\partial \mathbf{u}}{\partial t} + (\mathbf{u}\cdot\nabla)\mathbf{u}&= -\frac{1}{\rho}\nabla p+ \nu\nabla^{2}\mathbf{u}$$ \\ -$$ \nabla\cdot\mathbf{u} &= 0 $$ +$$\nabla\cdot\mathbf{u} &= 0$$ where: - $$\mathbf{u}=(u,v)$$ is the velocity field From 8375e890782f05aea3c6ff4cda570cd4fe925920 Mon Sep 17 00:00:00 2001 From: yiyuef Date: Fri, 6 Feb 2026 22:51:07 -0800 Subject: [PATCH 07/17] md --- .../Navier-Stokes/Cylinder-Flow-2D.md | 39 +++++++++++++++---- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md index a327b191..1355f46b 100644 --- a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md +++ b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md @@ -6,9 +6,14 @@ This example simulates a 2D incompressible channel flow past a cylinder-like obs We solve the incompressible Navier–Stokes equations in two dimensions: -$$\frac{\partial \mathbf{u}}{\partial t} + (\mathbf{u}\cdot\nabla)\mathbf{u}&= -\frac{1}{\rho}\nabla p+ \nu\nabla^{2}\mathbf{u}$$ \\ +$$ +\frac{\partial \mathbf{u}}{\partial t} + (\mathbf{u}\cdot\nabla)\mathbf{u} += -\frac{1}{\rho}\nabla p + \nu\nabla^{2}\mathbf{u} +$$ -$$\nabla\cdot\mathbf{u} &= 0$$ +$$ +\nabla\cdot\mathbf{u} = 0 +$$ where: - $$\mathbf{u}=(u,v)$$ is the velocity field @@ -26,7 +31,13 @@ The computational domain is a 2D channel: - $$y \in [-1,1]$$ - $$t \in [0, t_{\text{final}}]$$ with $$t_{\text{final}} = \texttt{tspan}$$ (default in code: `tspan = 32.0`) -A “cylinder” is represented by a masked block of cells located near $$x/L_x = \texttt{cylin\_pos}$$ (default `1/8`) with a size controlled by `cylin_size` (default `1/10`). Inside this mask, velocity is forced to zero (no-slip). +A “cylinder” is represented by a masked block of cells located near: + +$$ +x/L_x = \texttt{cylin\_pos} +$$ + +with a size controlled by `cylin_size` (default `1/10`). Inside this mask, velocity is forced to zero (no-slip). ### Initial Conditions (time-dependent) @@ -59,7 +70,17 @@ $$ \mathrm{Re} = \frac{U_0 D}{\nu} $$ -In the implementation, $$D = 2\texttt{cylin\_size}$$ and $$\nu = U_0 D/\mathrm{Re}$$ (default $$\mathrm{Re}=200$$). +In the implementation: + +$$ +D = 2\,\texttt{cylin\_size} +$$ + +$$ +\nu = \frac{U_0 D}{\mathrm{Re}} +$$ + +(Default $$\mathrm{Re}=200$$.) ## Implementation Details @@ -68,7 +89,7 @@ In the implementation, $$D = 2\texttt{cylin\_size}$$ and $$\nu = U_0 D/\mathrm{R Each time step advances the momentum equation and enforces incompressibility: 1. **Advection evaluation** - - Nonlinear convection is advanced with AB2 (Adams–Bashforth 2), with AB1 used on the first step + - Nonlinear convection is advanced with AB2 (Adams–Bashforth 2) with AB1 used on the first step 2. **Diffusion (Helmholtz solve)** - Viscous diffusion is treated with Crank–Nicolson, resulting in two Helmholtz-type sparse linear systems for intermediate velocities $$u^*$$ and $$v^*$$ @@ -117,11 +138,13 @@ cmake --build . -j The final speed magnitude typically shows an acceleration around the obstacle and a wake downstream. At $$\mathrm{Re}=200$$, unsteady vortex shedding can appear depending on grid/time-step choices and the obstacle mask representation. +![Final speed magnitude field for the 2D channel flow with a masked cylinder obstacle](cylinder_flow_2D_output1.png) + ```{figure} cylinder_flow_2D_output1.png -:alt: Final speed magnitude for 2D channel flow past a masked cylinder obstacle. +:alt: Final speed magnitude field for the 2D channel flow with a masked cylinder obstacle :width: 85% -Final speed magnitude field for the 2D channel flow with a masked “cylinder” obstacle. +Final speed magnitude field for the 2D channel flow with a masked cylinder obstacle ``` ### Validation / Analytical Solution @@ -129,7 +152,7 @@ Final speed magnitude field for the 2D channel flow with a masked “cylinder” No closed-form analytical solution is available for this configuration. Practical validation options include: - verifying that $$\|\nabla\cdot\mathbf{u}\|$$ remains small after the projection step - comparing qualitative wake structure and shedding behavior with known channel-cylinder benchmarks -- performing grid/time-step refinement studies +- performing grid and time-step refinement studies --- From 38a7744434db8ff031a0997894e658e275d51b15 Mon Sep 17 00:00:00 2001 From: yiyuef Date: Fri, 6 Feb 2026 22:57:54 -0800 Subject: [PATCH 08/17] md --- .../examples/Navier-Stokes/Cylinder-Flow-2D.md | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md index 1355f46b..e6cb6bb8 100644 --- a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md +++ b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md @@ -31,10 +31,10 @@ The computational domain is a 2D channel: - $$y \in [-1,1]$$ - $$t \in [0, t_{\text{final}}]$$ with $$t_{\text{final}} = \texttt{tspan}$$ (default in code: `tspan = 32.0`) -A “cylinder” is represented by a masked block of cells located near: +A “cylinder” is represented by a masked block of cells located near $$ -x/L_x = \texttt{cylin\_pos} +x/L_x = \mathtt{cylin}\_\mathtt{pos} $$ with a size controlled by `cylin_size` (default `1/10`). Inside this mask, velocity is forced to zero (no-slip). @@ -73,7 +73,7 @@ $$ In the implementation: $$ -D = 2\,\texttt{cylin\_size} +D = 2\,\mathtt{cylin}\_\mathtt{size} $$ $$ @@ -123,7 +123,7 @@ along with interpolation operators to map between cell-centered and face-based q The example writes: - `U_final.csv`, `V_final.csv`, `p_final.csv` (cell-centered fields) -- an image of the final speed field named `cylinder_flow_2D_output1.png` (this page embeds it as a figure) +- an image of the final speed field named `cylinder_flow_2D_output1.png` ## Running the Example @@ -136,17 +136,10 @@ cmake --build . -j ## Results -The final speed magnitude typically shows an acceleration around the obstacle and a wake downstream. At $$\mathrm{Re}=200$$, unsteady vortex shedding can appear depending on grid/time-step choices and the obstacle mask representation. +The final speed magnitude typically shows an acceleration around the obstacle and a wake downstream. At $$\mathrm{Re}=200$$, unsteady vortex shedding can appear depending on grid and time-step choices and the obstacle mask representation. ![Final speed magnitude field for the 2D channel flow with a masked cylinder obstacle](cylinder_flow_2D_output1.png) -```{figure} cylinder_flow_2D_output1.png -:alt: Final speed magnitude field for the 2D channel flow with a masked cylinder obstacle -:width: 85% - -Final speed magnitude field for the 2D channel flow with a masked cylinder obstacle -``` - ### Validation / Analytical Solution No closed-form analytical solution is available for this configuration. Practical validation options include: From 9bd192d7807fc1667ea4d2b5d8e014d4f3b0a1e5 Mon Sep 17 00:00:00 2001 From: yiyuef Date: Fri, 6 Feb 2026 23:02:56 -0800 Subject: [PATCH 09/17] md --- .../Navier-Stokes/Cylinder-Flow-2D.md | 28 ------------------- 1 file changed, 28 deletions(-) diff --git a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md index e6cb6bb8..0fc4f96a 100644 --- a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md +++ b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md @@ -60,27 +60,6 @@ Pressure boundary conditions (pressure Poisson step): - **Outlet (right)**: Dirichlet reference pressure with $$p = 0$$ - **Other boundaries**: homogeneous Neumann with $$\partial p/\partial n = 0$$ -## Mathematical Background - -“Flow past a cylinder in a channel” is a classic benchmark. In this example, the cylinder is approximated by an axis-aligned mask region (immersed-boundary-style enforcement by zeroing velocity in the masked cells). This provides a simple obstacle treatment while demonstrating how MOLE operators can be used to build a full incompressible flow solver. - -The Reynolds number is defined using a characteristic diameter $$D$$ and inlet speed $$U_0$$: - -$$ -\mathrm{Re} = \frac{U_0 D}{\nu} -$$ - -In the implementation: - -$$ -D = 2\,\mathtt{cylin}\_\mathtt{size} -$$ - -$$ -\nu = \frac{U_0 D}{\mathrm{Re}} -$$ - -(Default $$\mathrm{Re}=200$$.) ## Implementation Details @@ -140,13 +119,6 @@ The final speed magnitude typically shows an acceleration around the obstacle an ![Final speed magnitude field for the 2D channel flow with a masked cylinder obstacle](cylinder_flow_2D_output1.png) -### Validation / Analytical Solution - -No closed-form analytical solution is available for this configuration. Practical validation options include: -- verifying that $$\|\nabla\cdot\mathbf{u}\|$$ remains small after the projection step -- comparing qualitative wake structure and shedding behavior with known channel-cylinder benchmarks -- performing grid and time-step refinement studies - --- This example is implemented in: From dc09d4526a36d4850734eb5f5cd48c9af77e1d33 Mon Sep 17 00:00:00 2001 From: yiyuef Date: Fri, 6 Feb 2026 23:06:06 -0800 Subject: [PATCH 10/17] md --- .../Navier-Stokes/Cylinder-Flow-2D.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md index 0fc4f96a..96cd06b6 100644 --- a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md +++ b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md @@ -65,29 +65,29 @@ Pressure boundary conditions (pressure Poisson step): ### Projection (Fractional-Step) Method -Each time step advances the momentum equation and enforces incompressibility: +Each time step advances a predictor–corrector scheme to enforce incompressibility: -1. **Advection evaluation** - - Nonlinear convection is advanced with AB2 (Adams–Bashforth 2) with AB1 used on the first step +1. **Prediction (intermediate velocity)** + - Compute the intermediate velocity $$\mathbf{u}^*$$ by advancing the momentum equation + - Nonlinear convection is advanced with AB2 (AB1 for the first step) + - Viscous diffusion is treated with Crank–Nicolson, leading to Helmholtz-type solves for $$u^*$$ and $$v^*$$ -2. **Diffusion (Helmholtz solve)** - - Viscous diffusion is treated with Crank–Nicolson, resulting in two Helmholtz-type sparse linear systems for intermediate velocities $$u^*$$ and $$v^*$$ - -3. **Pressure Poisson solve** +2. **Pressure Poisson solve** - Pressure is obtained from the Poisson equation derived from $$\nabla\cdot\mathbf{u}^{n+1}=0$$ $$ \nabla^2 p^{n+1} = \frac{\rho}{\Delta t}\nabla\cdot \mathbf{u}^* $$ -4. **Velocity correction** +3. **Velocity correction** $$ \mathbf{u}^{n+1} = \mathbf{u}^* - \frac{\Delta t}{\rho}\nabla p^{n+1} $$ -5. **Re-apply boundary conditions + obstacle mask** - - The solver re-enforces all velocity BCs and sets the masked region to $$u=v=0$$ +4. **Re-apply boundary conditions + obstacle mask** + - Re-enforce all velocity boundary conditions + - Set the masked obstacle region to $$u=0$$ and $$v=0$$. ### Mimetic Spatial Operators (MOLE) From ef6ffb43b6dc3f82f4be23d5237f69d43cc860f2 Mon Sep 17 00:00:00 2001 From: Yiyue Feng <79966731+yiyuef@users.noreply.github.com> Date: Wed, 11 Feb 2026 14:43:36 -0800 Subject: [PATCH 11/17] Update doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md Co-authored-by: Valeria Barra <39932030+valeriabarra@users.noreply.github.com> Signed-off-by: Yiyue Feng <79966731+yiyuef@users.noreply.github.com> --- doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md index 96cd06b6..6455fd3a 100644 --- a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md +++ b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md @@ -31,7 +31,7 @@ The computational domain is a 2D channel: - $$y \in [-1,1]$$ - $$t \in [0, t_{\text{final}}]$$ with $$t_{\text{final}} = \texttt{tspan}$$ (default in code: `tspan = 32.0`) -A “cylinder” is represented by a masked block of cells located near +A “square cylinder” is represented by a masked block of cells located near $$ x/L_x = \mathtt{cylin}\_\mathtt{pos} From cb20eac51e3ea3c41247d20402a08ad98fd57171 Mon Sep 17 00:00:00 2001 From: yiyuef Date: Wed, 11 Feb 2026 16:57:51 -0800 Subject: [PATCH 12/17] multiple changes --- .../Navier-Stokes/Cylinder-Flow-2D.md | 51 ++-- .../cylinder_flow_2D_output1.png | Bin 29061 -> 0 bytes .../Navier-Stokes/cylinder_flow_2D_plot.png | Bin 0 -> 198336 bytes examples/cpp/cylinder_flow_2D.cpp | 66 +---- examples/cpp/cylinder_flow_2D_plot.gnu | 35 +++ examples/matlab_octave/cylinder_flow_2D.m | 252 ++++++++++++++++++ 6 files changed, 312 insertions(+), 92 deletions(-) delete mode 100644 doc/sphinx/source/examples/Navier-Stokes/cylinder_flow_2D_output1.png create mode 100644 doc/sphinx/source/examples/Navier-Stokes/cylinder_flow_2D_plot.png create mode 100644 examples/cpp/cylinder_flow_2D_plot.gnu create mode 100644 examples/matlab_octave/cylinder_flow_2D.m diff --git a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md index 6455fd3a..07ee56dc 100644 --- a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md +++ b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md @@ -1,6 +1,6 @@ -# 2D Channel Flow with a Cylinder +# 2D Channel Flow with a Cylinder-Like Obstacle (Masked Region) -This example simulates a 2D incompressible channel flow past a cylinder-like obstacle (implemented as a masked no-slip region) using MOLE mimetic operators and a fractional-step (projection / pressure-correction) method. At moderate Reynolds number, the solution exhibits a wake and may show vortex shedding depending on grid resolution and time step. +This example simulates a 2D incompressible channel flow past a cylinder-like obstacle (implemented as an axis-aligned masked no-slip region) using MOLE mimetic operators and a fractional-step (projection / pressure-correction) method. At moderate Reynolds number, the solution exhibits a wake and may show vortex shedding depending on grid resolution, time step, and the obstacle mask representation. ## Governing Equations @@ -17,10 +17,13 @@ $$ where: - $$\mathbf{u}=(u,v)$$ is the velocity field -- $$p$$ is the kinematic pressure +- $$p$$ is the (dynamic) pressure - $$\rho$$ is the density - $$\nu$$ is the kinematic viscosity +> Note: If you prefer using kinematic pressure $$\pi=p/\rho$$, the momentum equation becomes +> $$\partial_t\mathbf{u}+(\mathbf{u}\cdot\nabla)\mathbf{u}=-\nabla \pi + \nu\nabla^2\mathbf{u}.$$ + ## Domain and Initial/Boundary Conditions ### Spatial/Temporal Domain @@ -37,9 +40,9 @@ $$ x/L_x = \mathtt{cylin}\_\mathtt{pos} $$ -with a size controlled by `cylin_size` (default `1/10`). Inside this mask, velocity is forced to zero (no-slip). +with a size controlled by `cylin_size` (default `1/10`). Inside this mask, velocity is forced to zero (no-slip). The mask is applied as an axis-aligned cell region (not a geometric immersed boundary). -### Initial Conditions (time-dependent) +### Initial Conditions (t = 0) At $$t=0$$: - $$u(x,y,0)=U_0$$ everywhere in the fluid region @@ -60,7 +63,6 @@ Pressure boundary conditions (pressure Poisson step): - **Outlet (right)**: Dirichlet reference pressure with $$p = 0$$ - **Other boundaries**: homogeneous Neumann with $$\partial p/\partial n = 0$$ - ## Implementation Details ### Projection (Fractional-Step) Method @@ -73,7 +75,6 @@ Each time step advances a predictor–corrector scheme to enforce incompressibil - Viscous diffusion is treated with Crank–Nicolson, leading to Helmholtz-type solves for $$u^*$$ and $$v^*$$ 2. **Pressure Poisson solve** - - Pressure is obtained from the Poisson equation derived from $$\nabla\cdot\mathbf{u}^{n+1}=0$$ $$ \nabla^2 p^{n+1} = \frac{\rho}{\Delta t}\nabla\cdot \mathbf{u}^* @@ -98,35 +99,19 @@ The spatial discretization uses MOLE operators: along with interpolation operators to map between cell-centered and face-based quantities used in flux evaluations and in the projection step. -### Output Products +## Output Products + +The solver writes the final cell-centered fields: +- `U_final.csv`, `V_final.csv`, `p_final.csv` -The example writes: -- `U_final.csv`, `V_final.csv`, `p_final.csv` (cell-centered fields) -- an image of the final speed field named `cylinder_flow_2D_output1.png` +A plotting script is provided to visualize these CSV outputs using gnuplot: +- `cylinder_flow_2D_plot.gnu` → produces `cylinder_flow_2D_plot.png` ## Running the Example -From the build directory: +Assuming you already configured and built MOLE following the tutorial, run the example from the `examples/cpp` directory so that all outputs (CSV + plots) are written next to the source and plotting scripts: ```bash -cmake --build . -j -./examples/cpp/cylinder_flow_2D -``` - -## Results - -The final speed magnitude typically shows an acceleration around the obstacle and a wake downstream. At $$\mathrm{Re}=200$$, unsteady vortex shedding can appear depending on grid and time-step choices and the obstacle mask representation. - -![Final speed magnitude field for the 2D channel flow with a masked cylinder obstacle](cylinder_flow_2D_output1.png) - ---- - -This example is implemented in: -- `examples/cpp/cylinder_flow_2D.cpp` - -#### Variants - -Possible variants (not included by default) that are useful for exploration: -- different Reynolds numbers such as $$50 \le \mathrm{Re} \le 500$$ -- refining $$m \times n$$ resolution to reduce numerical diffusion -- replacing the rectangular mask by a more geometric obstacle treatment (if desired) +cd /examples/cpp +../../build/examples/cpp/cylinder_flow_2D +gnuplot cylinder_flow_2D_plot.gnu diff --git a/doc/sphinx/source/examples/Navier-Stokes/cylinder_flow_2D_output1.png b/doc/sphinx/source/examples/Navier-Stokes/cylinder_flow_2D_output1.png deleted file mode 100644 index 5dae227cd2c552ff21b2e9d5553ef996833b8e7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29061 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 diff --git a/doc/sphinx/source/examples/Navier-Stokes/cylinder_flow_2D_plot.png b/doc/sphinx/source/examples/Navier-Stokes/cylinder_flow_2D_plot.png new file mode 100644 index 0000000000000000000000000000000000000000..017542f38f2b08a4b8ec93758d261f01894c50c3 GIT binary patch literal 198336 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

$S%zAZv0bMEH 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

~n+a)E8 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 b?jCwRemFBZ=m)|pj~VE%UNDM8B literal 0 HcmV?d00001 diff --git a/examples/cpp/cylinder_flow_2D.cpp b/examples/cpp/cylinder_flow_2D.cpp index a0f2653d..e0dbe015 100644 --- a/examples/cpp/cylinder_flow_2D.cpp +++ b/examples/cpp/cylinder_flow_2D.cpp @@ -35,16 +35,14 @@ * - Outlet (right): Dirichlet, \f$ p = 0 \f$ (reference). * - Elsewhere: Neumann (zero normal gradient). * - * Build/Run: + * Run: * @code - * cd /build - * cmake --build . -j - * ./examples/cpp/cylinder_flow_2D + * cd examples/cpp + * ../../build/examples/cpp/cylinder_flow_2D * @endcode * * Outputs: * - U_final.csv, V_final.csv, p_final.csv - * - speed_final.png (macOS only; generated via 'sips'. Otherwise a PPM is kept.) */ #include @@ -73,8 +71,6 @@ #include #include #include -#include // std::system -#include // std::remove using arma::sp_mat; using arma::vec; @@ -270,33 +266,6 @@ static BCSystem build_scalar_bc_system( return out; } -// quick grayscale PPM -static void write_ppm_grayscale(const std::string& filename, const mat& field) { - const arma::uword nx = field.n_rows; - const arma::uword ny = field.n_cols; - - double fmin = field.min(); - double fmax = field.max(); - if (!std::isfinite(fmin) || !std::isfinite(fmax) || fmax <= fmin) { - throw std::runtime_error("write_ppm_grayscale: invalid range"); - } - - std::ofstream os(filename, std::ios::binary); - if (!os) throw std::runtime_error("Failed to open output image: " + filename); - - os << "P6\n" << nx << " " << ny << "\n255\n"; - - for (arma::sword j = static_cast(ny) - 1; j >= 0; --j) { - for (arma::uword i = 0; i < nx; ++i) { - double t = (field(i, static_cast(j)) - fmin) / (fmax - fmin); - t = std::min(1.0, std::max(0.0, t)); - unsigned char g = static_cast(std::lround(255.0 * t)); - unsigned char rgb[3] = {g, g, g}; - os.write(reinterpret_cast(rgb), 3); - } - } -} - // enforce inlet/outlet/walls + cylinder static void applyVelocityBCAndMask( mat& U, mat& V, @@ -536,6 +505,7 @@ int main() { applyVelocityBCAndMask(U_new, V_new, U_init, i1, i2, j1, j2); + U_flat = arma::vectorise(U_new); V_flat = arma::vectorise(V_new); AdvU_prev = AdvU_n; @@ -544,9 +514,7 @@ int main() { if ((step % plotEvery) == 0 || step == 1 || step == nSteps) { const double maxU = arma::abs(U_new).max(); const double maxV = arma::abs(V_new).max(); - const double umax = maxU; - const double vmax = maxV; - const double CFL = dt * (umax / dx + vmax / dy); + const double CFL = dt * (maxU / dx + maxV / dy); const double inletMean = arma::mean(U_new.row(0)); std::cout << "step " << std::setw(6) << step << "/" << std::setw(6) << nSteps @@ -559,7 +527,7 @@ int main() { } } - // Output: save fields and a quick visualization image + // Output: save fields { mat U_final = arma::reshape(U_flat, nx, ny); mat V_final = arma::reshape(V_flat, nx, ny); @@ -569,27 +537,7 @@ int main() { V_final.save("V_final.csv", arma::csv_ascii); p_final.save("p_final.csv", arma::csv_ascii); - mat speed = arma::sqrt(arma::square(U_final) + arma::square(V_final)); - - const std::string ppmFile = "speed_final.ppm"; - const std::string pngFile = "speed_final.png"; - write_ppm_grayscale(ppmFile, speed); - -#ifdef __APPLE__ - { - std::string cmd = "sips -s format png " + ppmFile + " --out " + pngFile + " >/dev/null 2>&1"; - int rc = std::system(cmd.c_str()); - if (rc == 0) { - std::remove(ppmFile.c_str()); - } else { - std::cerr << "[warn] PNG conversion failed (sips). Kept " << ppmFile << "\n"; - } - } -#else - std::cerr << "[warn] PNG conversion uses macOS 'sips'. Kept " << ppmFile << "\n"; -#endif - - std::cout << "Wrote U_final.csv, V_final.csv, p_final.csv, speed_final.png\n"; + std::cout << "Wrote U_final.csv, V_final.csv, p_final.csv\n"; } return 0; diff --git a/examples/cpp/cylinder_flow_2D_plot.gnu b/examples/cpp/cylinder_flow_2D_plot.gnu new file mode 100644 index 00000000..e9bd4967 --- /dev/null +++ b/examples/cpp/cylinder_flow_2D_plot.gnu @@ -0,0 +1,35 @@ +set datafile separator "," +set term pngcairo size 1200,1500 +set output "cylinder_flow_2D_plot.png" + +unset key +set view map +set pm3d map +set tics out +set border lw 1 +set size ratio -1 + +set multiplot layout 3,1 rowsfirst + +# margins: leave room for y-tics labels + colorbox +set lmargin 8 +set rmargin 8 +set tmargin 1 +set bmargin 1 + +tcmd(f) = sprintf("awk -F',' '{line=$0; sub(/,+$/,\"\",line); nf=split(line,a,\",\"); for(i=1;i<=nf;i++) A[NR,i]=a[i]; if(nf>max) max=nf} END{for(i=1;i<=max;i++){for(j=1;j<=NR;j++){printf \"%%s%%s\", A[j,i], (j integer +rad = floor(cylin_size*m_unit); + +i1 = m_unit - rad; +i2 = m_unit + rad; +j1 = halfN1 - rad; +j2 = halfN1 + rad; + +U(i1:i2, j1:j2) = 0; +V(i1:i2, j1:j2) = 0; + +U_flat = U(:); +V_flat = V(:); + +AdvU_prev = zeros(size(U_flat)); +AdvV_prev = zeros(size(V_flat)); + +p_new_flat = zeros(Ncell,1); + +%% Helmholtz BCs for U*, V* +dcU = [1;0;1;1]; ncU = [0;1;0;0]; +vU = {ones(n,1); zeros(n,1); zeros(m+2,1); zeros(m+2,1)}; + +dcV = [1;0;1;1]; ncV = [0;1;0;0]; +vV = {zeros(n,1); zeros(n,1); zeros(m+2,1); zeros(m+2,1)}; + +[Au, bU0] = addScalarBC2D(M, zeros(Ncell,1), k, m, dx, n, dy, dcU, ncU, vU); +[Av, bV0] = addScalarBC2D(M, zeros(Ncell,1), k, m, dx, n, dy, dcV, ncV, vV); + +diffU = Au - M; +diffV = Av - M; +rowsbcU = find(sum(spones(diffU),2) ~= 0); +rowsbcV = find(sum(spones(diffV),2) ~= 0); + +Au_fac = decomposition(Au, 'lu'); +Av_fac = decomposition(Av, 'lu'); + +%% Pressure Poisson BCs +dcP = [0;1;0;0]; ncP = [1;0;1;1]; +vP = {zeros(n,1); zeros(n,1); zeros(m+2,1); zeros(m+2,1)}; + +[Ap, bP0] = addScalarBC2D(L, zeros(Ncell,1), k, m, dx, n, dy, dcP, ncP, vP); +diffP = Ap - L; +rowsbcP = find(sum(spones(diffP),2) ~= 0); + +Ap_fac = decomposition(Ap, 'lu'); + +%% Time integration (match C++ structure) +nSteps = round(tspan/dt); +plotEvery = 100; + +for t_step = 1:nSteps + + % Interpolate cell-centered U/V to faces (same intent as C++) + U_stag = I * [U_flat; U_flat]; + U_on_u = U_stag(1:(m+1)*n); + U_on_v = U_stag((m+1)*n+1:end); + + V_stag = I * [V_flat; V_flat]; + V_on_u = V_stag(1:(m+1)*n); + V_on_v = V_stag((m+1)*n+1:end); + + % Nonlinear fluxes on faces + UU_on_u = U_on_u .* U_on_u; + UV_on_u = U_on_u .* V_on_u; + + VV_on_v = V_on_v .* V_on_v; + UV_on_v = U_on_v .* V_on_v; + + u_div = [UU_on_u; UV_on_v]; + v_div = [UV_on_u; VV_on_v]; + + AdvU_n = D * u_div; + AdvV_n = D * v_div; + + % AB2 (AB1 on first step) + if t_step == 1 + AdvU_ab = AdvU_n; + AdvV_ab = AdvV_n; + else + AdvU_ab = 1.5*AdvU_n - 0.5*AdvU_prev; + AdvV_ab = 1.5*AdvV_n - 0.5*AdvV_prev; + end + + % Helmholtz solves (CN diffusion) with BCs + rhsU = Mp*U_flat - dt*AdvU_ab; + rhsV = Mp*V_flat - dt*AdvV_ab; + + rhsU_bc = rhsU; rhsU_bc(rowsbcU) = 0; rhsU_bc = rhsU_bc + bU0; + rhsV_bc = rhsV; rhsV_bc(rowsbcV) = 0; rhsV_bc = rhsV_bc + bV0; + + U_star_flat = Au_fac \ rhsU_bc; + V_star_flat = Av_fac \ rhsV_bc; + + U_star = reshape(U_star_flat, m+2, n+2); + V_star = reshape(V_star_flat, m+2, n+2); + + % Mask + corner consistency (same as your "fixes") + U_star(i1:i2, j1:j2) = 0; + V_star(i1:i2, j1:j2) = 0; + + U_star(1,1) = 0; U_star(1,end) = 0; + V_star(1,1) = 0; V_star(1,end) = 0; + + U_star_flat = U_star(:); + V_star_flat = V_star(:); + + % Pressure Poisson RHS from u* + U_star_stag = I * [U_star_flat; U_star_flat]; + U_star_on_u = U_star_stag(1:(m+1)*n); + + V_star_stag = I * [V_star_flat; V_star_flat]; + V_star_on_v = V_star_stag((m+1)*n+1:end); + + UV_star_div = [U_star_on_u; V_star_on_v]; + RHS = (rho/dt) * (D * UV_star_div); + + RHS_bc = RHS; RHS_bc(rowsbcP) = 0; RHS_bc = RHS_bc + bP0; + p_new_flat = Ap_fac \ RHS_bc; + + % Projection correction + U_V_flat = [U_star_flat; V_star_flat] - (dt/rho) * (II * G * p_new_flat); + + U_new = reshape(U_V_flat(1:Ncell), m+2, n+2); + V_new = reshape(U_V_flat(Ncell+1:end), m+2, n+2); + + % CRITICAL: re-apply velocity BCs AFTER projection (aligns with C++ behavior) + [U_new, V_new] = applyVelocityBCAndMask(U_new, V_new, U_init, i1,i2,j1,j2); + + % Update + U_flat = U_new(:); + V_flat = V_new(:); + + AdvU_prev = AdvU_n; + AdvV_prev = AdvV_n; + + if (mod(t_step, plotEvery) == 0) || (t_step == 1) || (t_step == nSteps) + maxU = max(abs(U_new(:))); + maxV = max(abs(V_new(:))); + CFL = dt * (maxU/dx + maxV/dy); + inletMean = mean(U_new(1,:)); + fprintf('step %6d/%6d | t=%.6f | CFL~%.3f | max|U|=%.3e | max|V|=%.3e | mean(U_in)=%.3f\n', ... + t_step, nSteps, dt*t_step, CFL, maxU, maxV, inletMean); + end +end + +%% Final plot: U, V, p in one column (3x1) +U = reshape(U_flat, m+2, n+2); +V = reshape(V_flat, m+2, n+2); +p = reshape(p_new_flat, m+2, n+2); + +figure('Name','Final U/V/p','NumberTitle','off'); +set(gcf, 'WindowState', 'maximized'); + +subplot(3,1,1) +imagesc(U'); axis image; axis tight; colorbar; +xlabel('x (grid index)'); ylabel('y (grid index)'); +title(sprintf('U at t = %.3f', tspan)) + +subplot(3,1,2) +imagesc(V'); axis image; axis tight; colorbar; +xlabel('x (grid index)'); ylabel('y (grid index)'); +title(sprintf('V at t = %.3f', tspan)) + +subplot(3,1,3) +imagesc(p'); axis image; axis tight; colorbar; +xlabel('x (grid index)'); ylabel('y (grid index)'); +title('Pressure p') + +%% -------- local helper: enforce velocity BCs + corner + cylinder mask ----- +function [U, V] = applyVelocityBCAndMask(U, V, Uin, i1,i2,j1,j2) + % inlet Dirichlet + U(1,:) = Uin; + V(1,:) = 0; + + % outlet Neumann (zero-gradient) + U(end,:) = U(end-1,:); + V(end,:) = V(end-1,:); + + % walls no-slip + U(2:end,1) = 0; + V(2:end,1) = 0; + U(2:end,end) = 0; + V(2:end,end) = 0; + + % inlet-wall corners should obey wall + U(1,1) = 0; U(1,end) = 0; + V(1,1) = 0; V(1,end) = 0; + + % cylinder mask + U(i1:i2, j1:j2) = 0; + V(i1:i2, j1:j2) = 0; +end From b3065d1679917ba9cd95fbdda4eff2ad621eb9e7 Mon Sep 17 00:00:00 2001 From: yiyuef Date: Wed, 11 Feb 2026 17:02:46 -0800 Subject: [PATCH 13/17] md change --- doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md index 07ee56dc..f35facc7 100644 --- a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md +++ b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md @@ -105,7 +105,7 @@ The solver writes the final cell-centered fields: - `U_final.csv`, `V_final.csv`, `p_final.csv` A plotting script is provided to visualize these CSV outputs using gnuplot: -- `cylinder_flow_2D_plot.gnu` → produces `cylinder_flow_2D_plot.png` +- `cylinder_flow_2D_plot.gnu` → produces `cylinder_flow_2D_plot_cpp.png` ## Running the Example From 5269b055b182396220834fcd756f71940e68c6aa Mon Sep 17 00:00:00 2001 From: yiyuef Date: Wed, 11 Feb 2026 17:08:53 -0800 Subject: [PATCH 14/17] md change --- .../Navier-Stokes/Cylinder-Flow-2D.md | 35 +++++++++++++------ 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md index f35facc7..ce025ed4 100644 --- a/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md +++ b/doc/sphinx/source/examples/Navier-Stokes/Cylinder-Flow-2D.md @@ -16,12 +16,12 @@ $$ $$ where: -- $$\mathbf{u}=(u,v)$$ is the velocity field -- $$p$$ is the (dynamic) pressure -- $$\rho$$ is the density -- $$\nu$$ is the kinematic viscosity +- $$\mathbf{u}=(u,v)$$ is the velocity field +- $$p$$ is the (dynamic) pressure +- $$\rho$$ is the density +- $$\nu$$ is the kinematic viscosity -> Note: If you prefer using kinematic pressure $$\pi=p/\rho$$, the momentum equation becomes +> Note: If you prefer using kinematic pressure $$\pi=p/\rho$$, the momentum equation becomes > $$\partial_t\mathbf{u}+(\mathbf{u}\cdot\nabla)\mathbf{u}=-\nabla \pi + \nu\nabla^2\mathbf{u}.$$ ## Domain and Initial/Boundary Conditions @@ -30,8 +30,8 @@ where: The computational domain is a 2D channel: -- $$x \in [0,8]$$ -- $$y \in [-1,1]$$ +- $$x \in [0,8]$$ +- $$y \in [-1,1]$$ - $$t \in [0, t_{\text{final}}]$$ with $$t_{\text{final}} = \texttt{tspan}$$ (default in code: `tspan = 32.0`) A “square cylinder” is represented by a masked block of cells located near @@ -45,9 +45,9 @@ with a size controlled by `cylin_size` (default `1/10`). Inside this mask, veloc ### Initial Conditions (t = 0) At $$t=0$$: -- $$u(x,y,0)=U_0$$ everywhere in the fluid region -- $$v(x,y,0)=0$$ -- the obstacle mask region is set to $$u=v=0$$ +- $$u(x,y,0)=U_0$$ everywhere in the fluid region +- $$v(x,y,0)=0$$ +- the obstacle mask region is set to $$u=v=0$$ (Default in code: `U_init = 1.0`.) @@ -115,3 +115,18 @@ Assuming you already configured and built MOLE following the tutorial, run the e cd /examples/cpp ../../build/examples/cpp/cylinder_flow_2D gnuplot cylinder_flow_2D_plot.gnu +``` + +## MATLAB/Octave Version + +A MATLAB/Octave implementation of the same channel-flow-with-masked-obstacle setup is also provided. It is configured with the same domain, grid resolution, time step, final time, Reynolds number, and boundary conditions as the C++ example, so the final fields are directly comparable. + +The corresponding output figures (generated in this same directory) are: +- `cylinder_flow_2D_plot_cpp.png` +- `cylinder_flow_2D_plot_matlab.png` + +### C++ result +![C++: final U/V/p fields](cylinder_flow_2D_plot_cpp.png) + +### MATLAB result +![MATLAB: final U/V/p fields](cylinder_flow_2D_plot_matlab.png) \ No newline at end of file From b7d825fcd15c08e613cf354560925922338676ac Mon Sep 17 00:00:00 2001 From: yiyuef Date: Wed, 11 Feb 2026 17:09:59 -0800 Subject: [PATCH 15/17] img update --- ..._plot.png => cylinder_flow_2D_plot_cpp.png} | Bin .../cylinder_flow_2D_plot_matlab.png | Bin 0 -> 195275 bytes 2 files changed, 0 insertions(+), 0 deletions(-) rename doc/sphinx/source/examples/Navier-Stokes/{cylinder_flow_2D_plot.png => cylinder_flow_2D_plot_cpp.png} (100%) create mode 100644 doc/sphinx/source/examples/Navier-Stokes/cylinder_flow_2D_plot_matlab.png diff --git a/doc/sphinx/source/examples/Navier-Stokes/cylinder_flow_2D_plot.png b/doc/sphinx/source/examples/Navier-Stokes/cylinder_flow_2D_plot_cpp.png similarity index 100% rename from doc/sphinx/source/examples/Navier-Stokes/cylinder_flow_2D_plot.png rename to doc/sphinx/source/examples/Navier-Stokes/cylinder_flow_2D_plot_cpp.png diff --git a/doc/sphinx/source/examples/Navier-Stokes/cylinder_flow_2D_plot_matlab.png b/doc/sphinx/source/examples/Navier-Stokes/cylinder_flow_2D_plot_matlab.png new file mode 100644 index 0000000000000000000000000000000000000000..d2d0da208578d67986f5d19ce2311a00917d4beb GIT binary patch literal 195275 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 literal 0 HcmV?d00001 From 646af094475dc4bfbfe3208f1faa223715fb1e51 Mon Sep 17 00:00:00 2001 From: yiyuef Date: Wed, 11 Feb 2026 17:31:21 -0800 Subject: [PATCH 16/17] cpp update - move gnu to cpp script --- examples/cpp/cylinder_flow_2D.cpp | 66 +++++++++++++++++++++++++- examples/cpp/cylinder_flow_2D_plot.gnu | 35 -------------- 2 files changed, 64 insertions(+), 37 deletions(-) delete mode 100644 examples/cpp/cylinder_flow_2D_plot.gnu diff --git a/examples/cpp/cylinder_flow_2D.cpp b/examples/cpp/cylinder_flow_2D.cpp index e0dbe015..14d25401 100644 --- a/examples/cpp/cylinder_flow_2D.cpp +++ b/examples/cpp/cylinder_flow_2D.cpp @@ -43,6 +43,7 @@ * * Outputs: * - U_final.csv, V_final.csv, p_final.csv + * - cylinder_flow_2D_plot.gnu, cylinder_flow_2D_plot.png (if gnuplot is available) */ #include @@ -71,6 +72,7 @@ #include #include #include +#include using arma::sp_mat; using arma::vec; @@ -293,6 +295,58 @@ static void applyVelocityBCAndMask( V.submat(i1, j1, i2, j2).zeros(); } +static void write_gnuplot_script_cylinder_flow(const std::string& filename) { + const char* script = R"GNUPLOT( +set datafile separator "," +set term pngcairo size 1200,1500 +set output "cylinder_flow_2D_plot.png" + +unset key +set view map +set pm3d map +set tics out +set border lw 1 +set size ratio -1 + +set multiplot layout 3,1 rowsfirst + +set lmargin 8 +set rmargin 8 +set tmargin 1 +set bmargin 1 + +tcmd(f) = sprintf("awk -F',' '{line=$0; sub(/,+$/,\"\",line); nf=split(line,a,\",\"); for(i=1;i<=nf;i++) A[NR,i]=a[i]; if(nf>max) max=nf} END{for(i=1;i<=max;i++){for(j=1;j<=NR;j++){printf \"%%s%%s\", A[j,i], (jmax) max=nf} END{for(i=1;i<=max;i++){for(j=1;j<=NR;j++){printf \"%%s%%s\", A[j,i], (j Date: Mon, 23 Feb 2026 15:46:15 -0800 Subject: [PATCH 17/17] matlab code comment change --- examples/matlab_octave/cylinder_flow_2D.m | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/matlab_octave/cylinder_flow_2D.m b/examples/matlab_octave/cylinder_flow_2D.m index 69c244b1..d0b765dd 100644 --- a/examples/matlab_octave/cylinder_flow_2D.m +++ b/examples/matlab_octave/cylinder_flow_2D.m @@ -1,4 +1,4 @@ -%% 2D incompressible flow over a square cylinder (masked region) +%% 2D incompressible flow over a square cylinder % Projection method: AB2 (advection) + CN (diffusion) % MATLAB version aligned with the C++ example settings/output plotting. @@ -55,7 +55,7 @@ U = 0.*X + U_init; V = 0.*X; -% cylinder mask indices (same logic as your original) +% cylinder mask indices m_unit = floor(cylin_pos*m); halfN1 = 0.5*(n+3); % n odd => integer rad = floor(cylin_size*m_unit); @@ -110,7 +110,7 @@ for t_step = 1:nSteps - % Interpolate cell-centered U/V to faces (same intent as C++) + % Interpolate cell-centered U/V to faces U_stag = I * [U_flat; U_flat]; U_on_u = U_stag(1:(m+1)*n); U_on_v = U_stag((m+1)*n+1:end); @@ -154,7 +154,7 @@ U_star = reshape(U_star_flat, m+2, n+2); V_star = reshape(V_star_flat, m+2, n+2); - % Mask + corner consistency (same as your "fixes") + % Mask + corner consistency U_star(i1:i2, j1:j2) = 0; V_star(i1:i2, j1:j2) = 0; @@ -183,7 +183,7 @@ U_new = reshape(U_V_flat(1:Ncell), m+2, n+2); V_new = reshape(U_V_flat(Ncell+1:end), m+2, n+2); - % CRITICAL: re-apply velocity BCs AFTER projection (aligns with C++ behavior) + % CRITICAL: re-apply velocity BCs AFTER projection [U_new, V_new] = applyVelocityBCAndMask(U_new, V_new, U_init, i1,i2,j1,j2); % Update