From ef51f2259359dec086e68710ec405927b89fb905 Mon Sep 17 00:00:00 2001 From: Derek Gaston Date: Wed, 11 Jan 2017 14:43:41 -0500 Subject: [PATCH] Add StitchedMesh closes #8308 --- framework/include/mesh/StitchedMesh.h | 62 ++++++++++ framework/src/base/Moose.C | 2 + framework/src/mesh/StitchedMesh.C | 108 ++++++++++++++++++ test/tests/mesh/stitched_mesh/center.e | Bin 0 -> 3252 bytes test/tests/mesh/stitched_mesh/generator.i | 12 ++ .../stitched_mesh/gold/stitched_mesh_out.e | Bin 0 -> 24544 bytes test/tests/mesh/stitched_mesh/left.e | Bin 0 -> 3252 bytes test/tests/mesh/stitched_mesh/right.e | Bin 0 -> 3252 bytes test/tests/mesh/stitched_mesh/stitched_mesh.i | 48 ++++++++ test/tests/mesh/stitched_mesh/tests | 7 ++ 10 files changed, 239 insertions(+) create mode 100644 framework/include/mesh/StitchedMesh.h create mode 100644 framework/src/mesh/StitchedMesh.C create mode 100644 test/tests/mesh/stitched_mesh/center.e create mode 100644 test/tests/mesh/stitched_mesh/generator.i create mode 100644 test/tests/mesh/stitched_mesh/gold/stitched_mesh_out.e create mode 100644 test/tests/mesh/stitched_mesh/left.e create mode 100644 test/tests/mesh/stitched_mesh/right.e create mode 100644 test/tests/mesh/stitched_mesh/stitched_mesh.i create mode 100644 test/tests/mesh/stitched_mesh/tests diff --git a/framework/include/mesh/StitchedMesh.h b/framework/include/mesh/StitchedMesh.h new file mode 100644 index 000000000000..808db61c80ad --- /dev/null +++ b/framework/include/mesh/StitchedMesh.h @@ -0,0 +1,62 @@ +/****************************************************************/ +/* DO NOT MODIFY THIS HEADER */ +/* MOOSE - Multiphysics Object Oriented Simulation Environment */ +/* */ +/* (c) 2010 Battelle Energy Alliance, LLC */ +/* ALL RIGHTS RESERVED */ +/* */ +/* Prepared by Battelle Energy Alliance, LLC */ +/* Under Contract No. DE-AC07-05ID14517 */ +/* With the U. S. Department of Energy */ +/* */ +/* See COPYRIGHT for full restrictions */ +/****************************************************************/ + +#ifndef STITCHEDMESH_H +#define STITCHEDMESH_H + +#include "MooseMesh.h" + +#include "libmesh/serial_mesh.h" + +class StitchedMesh; + +template<> +InputParameters validParams(); + +/** + * Reads an arbitrary set of meshes and attempts to "stitch" (join) them + * along boundaries. + */ +class StitchedMesh : public MooseMesh +{ +public: + StitchedMesh(const InputParameters & parameters); + StitchedMesh(const StitchedMesh & other_mesh); + virtual ~StitchedMesh(); + + virtual MooseMesh & clone() const override; + + virtual void buildMesh() override; + +protected: + /// The mesh files to read + const std::vector & _files; + + /// Whether or not to clear (remove) the stitched boundary IDs + const bool & _clear_stitched_boundary_ids; + + /// The raw data from the input file + const std::vector & _stitch_boundaries; + + /// A transformed version of _stitch_boundaries into a more logical "pairwise" structure + std::vector> _stitch_boundaries_pairs; + + // Pointer to the original "real" mesh to be stitched into + ReplicatedMesh * _original_mesh; + + /// The meshes to be stitched together. The first entry will be the "real" mesh + std::vector> _meshes; +}; + +#endif /* STITCHEDMESH_H */ diff --git a/framework/src/base/Moose.C b/framework/src/base/Moose.C index 06e2123d3eb4..03268b9609c0 100644 --- a/framework/src/base/Moose.C +++ b/framework/src/base/Moose.C @@ -30,6 +30,7 @@ #include "TiledMesh.h" #include "ImageMesh.h" #include "PatternedMesh.h" +#include "StitchedMesh.h" // MeshModifiers #include "MeshExtruder.h" @@ -461,6 +462,7 @@ registerObjects(Factory & factory) registerMesh(TiledMesh); registerMesh(ImageMesh); registerMesh(PatternedMesh); + registerMesh(StitchedMesh); // mesh modifiers registerMeshModifier(MeshExtruder); diff --git a/framework/src/mesh/StitchedMesh.C b/framework/src/mesh/StitchedMesh.C new file mode 100644 index 000000000000..aad71becfb0a --- /dev/null +++ b/framework/src/mesh/StitchedMesh.C @@ -0,0 +1,108 @@ +/****************************************************************/ +/* DO NOT MODIFY THIS HEADER */ +/* MOOSE - Multiphysics Object Oriented Simulation Environment */ +/* */ +/* (c) 2010 Battelle Energy Alliance, LLC */ +/* ALL RIGHTS RESERVED */ +/* */ +/* Prepared by Battelle Energy Alliance, LLC */ +/* Under Contract No. DE-AC07-05ID14517 */ +/* With the U. S. Department of Energy */ +/* */ +/* See COPYRIGHT for full restrictions */ +/****************************************************************/ + +#include "StitchedMesh.h" +#include "Parser.h" +#include "InputParameters.h" + +// libMesh includes +#include "libmesh/mesh_modification.h" +#include "libmesh/serial_mesh.h" +#include "libmesh/exodusII_io.h" + +template<> +InputParameters validParams() +{ + InputParameters params = validParams(); + params.addRequiredParam>("files", "The name of the mesh files to read. These mesh files will be 'stitched' into the current mesh in this order."); + + params.addRequiredParam>("stitch_boundaries", "Pairs of boundary names (one after the other) to stitch together for each step."); + + params.addParam("clear_stitched_boundary_ids", true, "Whether or not to erase the boundary IDs after they've been used for stitching."); + + params.addClassDescription("Reads in all of the given meshes and stitches them all together into one mesh."); + + return params; +} + +StitchedMesh::StitchedMesh(const InputParameters & parameters) : + MooseMesh(parameters), + _files(getParam >("files")), + _clear_stitched_boundary_ids(getParam("clear_stitched_boundary_ids")), + _stitch_boundaries(getParam>("stitch_boundaries")) +{ + // The StitchedMesh class only works with ReplicatedMesh + errorIfDistributedMesh("StitchedMesh"); + + // Get the original mesh + _original_mesh = dynamic_cast(&getMesh()); + if (!_original_mesh) + mooseError("StitchedMesh does not support DistributedMesh"); + + // Read the first mesh into the original mesh... then we'll stitch all of the others into that + _original_mesh->read(_files[0]); + + _meshes.reserve(_files.size() - 1); + + // Read in all of the other meshes + for (auto i = beginIndex(_files, 1); i < _files.size(); ++i) + { + _meshes.emplace_back(libmesh_make_unique(_communicator)); + auto & mesh = _meshes.back(); + + mesh->read(_files[i]); + } + + if (_stitch_boundaries.size() % 2 != 0) + mooseError("There must be an even amount of stitch_boundaries in " << name()); + + _stitch_boundaries_pairs.reserve(_stitch_boundaries.size() / 2); + + // Make pairs out of the boundary names + for (auto i = beginIndex(_stitch_boundaries); i < _stitch_boundaries.size(); i += 2) + _stitch_boundaries_pairs.emplace_back(_stitch_boundaries[i], _stitch_boundaries[i+1]); +} + +StitchedMesh::StitchedMesh(const StitchedMesh & other_mesh) : + MooseMesh(other_mesh), + _files(other_mesh._files), + _clear_stitched_boundary_ids(other_mesh._clear_stitched_boundary_ids), + _stitch_boundaries(other_mesh._stitch_boundaries) +{ +} + +StitchedMesh::~StitchedMesh() +{ +} + +MooseMesh & +StitchedMesh::clone() const +{ + return *(new StitchedMesh(*this)); +} + +void +StitchedMesh::buildMesh() +{ + // Stich 'em + for (auto i = beginIndex(_meshes); i < _meshes.size(); i++) + { + auto & boundary_pair = _stitch_boundaries_pairs[i]; + + BoundaryID first = getBoundaryID(boundary_pair.first); + BoundaryID second = getBoundaryID(boundary_pair.second); + + _original_mesh->stitch_meshes(*_meshes[i], first, second, TOLERANCE, _clear_stitched_boundary_ids); + } +} diff --git a/test/tests/mesh/stitched_mesh/center.e b/test/tests/mesh/stitched_mesh/center.e new file mode 100644 index 0000000000000000000000000000000000000000..d182b1cb0d46b339d4346306d5cd41b9b52cd610 GIT binary patch literal 3252 zcmd6pzi$&+5XUzVoV8;JcL6TI9TyRHqeWe^TDag^)F?LPY0PsQu~pcD03 zX1_Y~IO&8#B%Ze*_{hRuh|)=+QOtwo-oKi8-h^-%*)Zy8zc6#Q#BjvvMltGtqMrMh zL9Ts*L72*SzJPx7tDhmlLlxP@U1XPbkzF>K_>?f+9z?<2FdarotZD9dV)0qy8tWtE zbKPFj&Q$GSkVJ77Y$Rz%Io_jo#7f@2Q13=Pv=K@XBR1p`EQ$7PHgPJCsFP z4`(83KeHOfVcO1;G>GC0#lmdAy&3hXm3kJa*{j(a`sQa|<7wfz(8&9}v6eWe?0--& zs%b#HqUH;I>f!R&z%;jfP=MG2h-z2$@ufdVlL37(-KHB)x-&%{2X8FtyVHJA^ZIc3 zzy0bcI$|%*xu}K*U;5?!&>gp*+26s*N}`T!YE;Ba{ze*4%omedN4(J8$|dABLU-!E z)~EyN(ogcGro?W9Y@wL=PsPcjtWO?Q{rgV;rFet5w=If2xCd36rNX9uQ@qKY4Y)l0 zHrKtH1GW#HKHOhP;y7H%=q2&;#&C|TzIE<xwzvINpzDDRCD<)02U%V@0b^k!u`Q@F!?_t5H>^DEp&hI$g zTXJB2d28@{#GHzk{gR`_J5HCAX?`gyerE)uvfl?1n%{A{Po#@42wn#7fvp{AeL%(Y zTK`?jX`7q;V>hRk@lTJS$1UTZUqf$NjxXlkJkR(@e--;5Ro|tv&04QWU->(33*S0# zy>gEGQTmJCL$d|xs5 zhPRSC#NFgg=68a3j^6;@_3}H)+rvA-ojxl3B>XJQ3daO~vrh=W2y+7etxgH2g<$P3uPBm`kRqPfE=VJ%H09-=7VE_OC literal 0 HcmV?d00001 diff --git a/test/tests/mesh/stitched_mesh/generator.i b/test/tests/mesh/stitched_mesh/generator.i new file mode 100644 index 000000000000..697141527a2d --- /dev/null +++ b/test/tests/mesh/stitched_mesh/generator.i @@ -0,0 +1,12 @@ +# Just used to generate the mesh files for the test +# run with --mesh-only + +[Mesh] + type = GeneratedMesh + dim = 2 + xmin = 2 + xmax = 3 + nx = 5 + ny = 5 + construct_node_list_from_side_list = false +[] diff --git a/test/tests/mesh/stitched_mesh/gold/stitched_mesh_out.e b/test/tests/mesh/stitched_mesh/gold/stitched_mesh_out.e new file mode 100644 index 0000000000000000000000000000000000000000..26330fe6a01998bc7c7d07dfe2075ba954580c04 GIT binary patch literal 24544 zcmeHPZHyd8nI6X<>^e?jCm~rAJ}PlSd#?<&ZcX2qF&>z?(3j$Ud2Vs!>u2~{K<=^5~OGd#i@ied1&tumsSQSz- znFoMA(k#a!(_O$?b!^Nzr*M?XtNXC?I<8cgSr2-IMs=Ar^)#w$YqLDxf<91mJTpMe8)eUS z1LKV67hsQvSdX+1>!1(lFWL@ltxiPF@%%an?%WQCFoPqbhfAo6f?Q}gY|0D4BSDLTKwyi_-dar=k2ma{w$eZ+f{|nwV zc@JK)DAm&@w6_jO>#FGIbrtWDJl%$O9eHVYnwLIA`?3y6*MYPf)xi~#A9joK({7FY z9|`$4BWAgy{494X{>O1{Ez7wqq4LDOpiyQYXb9_v@wbkBoWV|@WR`KjV7tIr&fC0d>4_2C?SVWxGn9lmAh@3lUzO-_Z8Uyjt&L zpj>v^bkIt?f`JlfFjz^OgU9!t(0)|B5o?bo}SA{5pQ^S%x3v!gw?+xQ=s; zdK%>3Xui=Esyxf_N>%<*9j{X58`bd|WsgxE_o)Jp>R9V*lyBsJgZRSgS&p>->sX)Y z_PDA2yrk^glCIlD(pa~mzT|ei0Jm&?0 zCm*3(C3(*aPeZ-V1Qd%xCWR0Xbk4 z7z1tx#({mn1h5~t1DFJ+fIES^fN9_Wa1b~I%m8--hk+x&EN~P!1{??O0Zst-0w)2E zlkWrW2Mpi=pwa#uC+Rxi*p6vk7rI__o#^_}b)%n~D5vX*Y09y_NMo9EtUJ<}rX1^$ zG^W=9tW(lh*Ob%s%QWR!&!jO;Io3I8OjC~aPa4zIMPDF|K0-O|7fe%*{y`ekl%ubZ z#x&*VH>5F5UGyQ+=v$Q2{=_up=vSmMO*#4)X-rdY6F?f%)J5MTjkeT2NINjCeevC4 zTKnW?95bzb^Oi6@h?qV~f29t}Z2@QprYScJkj6CSMgY>7rrcJ5G^VL*8$cR$P>#M% zJ1|YT9RO)eQ*I|f8q<{91(3!xb?pX7qYldL0cZ!NDaSTL8q<_}FF+d8l)DWejcMx2 z0;Ev~<=zL-rc6_g?Ts|1DK`p`#x&*F4oAZ@b=?k-Mq7>pY@4(L(-XjcK(|-jR!L)8 zx7o=st=sOMIHnHD9RO$trYUz2AdP9t9Rf&WnsPG$X-rQ8cLStR2jva}v;)(WI|7i# zH05Ri(wL^)QGhh2sp}X(8g)?aI6ylvO}Tpj(wL^)34k=FDR(bG8q?Hu5+IE_DEEGV zHf5S}_W`6aO}YC4(wL^40g%Qtbv*!(wgR{WSP85G*gvfSbRVVrCfz4phI5w#R{-mQ z4ZxMaRlwE2TY+nUYk>h^Bk(rhI^gZVJAiir?*asHJ#YiC3Aho^ZB@5X-8OZb90bo0 zumug(z2$Jvy$Zm|opw*ky6{h4`Toi!pZ&vEskZ5Fj7>%UvDT=W_G2z`Rrq%Sps z`DXpGj&B8MYucT4OgmE#%d{Gx|MdgZNnc>uD6f5&ZG!ELZCBSN{hvNhKc{a$0MKTv z-&X!cU*L6_SNb)5nDr~F`0Erl#e_~WZO?BK4E0+3x#UdC!cgLvT0Rm} zn40U-a#|fa1s{`wSW!A9)%hhXG5eYy>KaOuc(E2I}mwPKceB0J=;chS;BM0 z*5Q#|gTo_(!|ZKi!_36&k-RQ+RN=OvokQ%8(uVP>@5AfFES5;4`owWGo;yufjEsnp z?R&TF!B6I|(*-6Lt$Z~w=NwDw#3Ea%EEPu;Zrcl;JBAY}>~z65{yhC~$}Lv|u^)?$ z=j?^ALxE1RJMU!>!glSzHXWnrdnH3IwsMt|i|o?NvtoK|cH+ov(u>9^#EgEe#bm|Q z!DD07;Sy$NwL;7}Uj9@~L1QYtLb;46*R~pU$>XfJ=fu68Gq%hjMA0(xW`4nnRVPGN zaAcM|2yx2tUCS}@9=aTJ9@-bIs0p$nT^At)xdytTbp(U(5bOC@gmsV1d8VoYk!0qd@W?1Q$b_^(<4eV*f-~ z+C*A~s8+b+VBX9x8CB0PtBc5R3EhvpUD1YVTS~pcuw~m1h5EWs$i+$ARScNXinL)} z=ByYyI?E@%gh7ZFin>=QmxfzwO`k)oiwC~v7=bw-<2Bvb(3Lk)UBt#XebcjiAKL>w z*Lcv(dvmtwV)@g3$nv?QX*%dERedMzb!$m1Eff0}s*Yn+$|h7} zKbGZkcaTz^G-ukYglMfxYD}-NjLlnl!-`~!BR3`NWpdT z_VG%uM|3GJpMX_}lS5m$R@19&vNGqqs#`GqC0(&~aaN>T8lrI9K0AHW6T)iOXQ%Z; z=Fl#c9XpSw#JJFn!nT8vtk`G!c7DOJg4@Rv)v_9l6zodbL5Hn2Nk+1ozAX!ZQNP{t z&X-LzpH#~_^HQ+Qd81;Uw$N`!@}`pA)N(6bQe#&NEj(Co*Ww5(yNAC ztDD}XWN#zamV1;-nyy1{({U-gu6R^J9aw@nha-Vy7M9|CE{?{|i!%(og{o;kJoVXyDkg^JEIbBU*q?9V#TH{O zU%?|r=V_}By&)eSs9=?iz;kN-R+!3)!BiTBaInXI(Xg?^ z6C04jVT9IYY&b)OaT!}y4u#g>FjsPu1t`QL6kbp={rtkRmPjHi3RcmqIzcjh89acu zH=@kpjx$xH|p>CoXe&q<6U;pZsW>a|$w7|S!Rjro}p9?pu~ zW!f0h=P-|b9lmE5YQ@F}N(wgKilzyW!?c@E@(x%1mv@`$X?L_l`8Dytx>N~JN=KCyr7 z=ycNEc(21`8g~fB&98)+#q%F|FV1}^wXicWv1en>L3Veo?or6$&C*Te+Q0G`nT&TD zy!Ft_fl}gPq+vYS>*3r5P~=0^0BZ}qd!iS@ESD|Z=;?-aZ7w`W-#J7S8oZyH_4Axv z-1WFKSAN1OE`xCFw7pHGxNuAHukH>c7o zEO^Mg1fQ)#4{O*(IY*4`;%;Etwf&~)i(JOX7X$gdMU36`T5!!T(-&DO#0YEw zFD;nvJRVH>wIyxR^tG%M;_Hb;!||GzEYd5iEO=*hc4Ff6HpBvr9IzV;czE}kwl#K< z!zDLw$hUA}^4HCCN?_%C+w@KcZC=P>4%6QC77J!9pjP}{9#>26hj_cfEZI)v;VE=!74h}DI}VQ>yo2w4 zCkT|%TX#4ICg-c78q;@Q9bU@8YfV#!lfVC$VP@2As&*TRW)L<^I~2j=W8TD;mge4H zDo%fss@X91t;h85JjN-Ey!DvA$Zxvkj|9Gdk>#QV&OZz2Z@lT8<-WRM!-n;LdRWFA z_WgC4eirl%mrv#xuYdJE`HjO*zxoUHtwZ~pxfgi8G^XNDypa3x(W6I?{o4T*fAzac zU*&i8`c8a7$&am8a`!){_@Dlj;(z3|dj74u6#wIE6#q94EB>GTzv6$Yf&Y=075|6M zD*mNUN&e#le^&fYe6(Kw^uH?p7eA-?f2#6-eD&Amw+KHo@QjTA<+o4feunUi-#?<_ zA3vCT8O6Wy!SAd1pH|3ko^Joz_f-7lf6V=o_Bi{WDt_8j`flAU3PZKKmxc z_sz44@8<^;--}M}S7*+gS^W1&6+iWp9KRX)sDHnTAHFsByC{N;novDEj>tdjrMBT8;^Qt_{Rww~{$|4@97y{7nFTk&oATRqJ8O^FomtI}agy34 z1#MELh?JIs50QL?)T!wB2%O){9A`4gdX1EVC!M|T-FNSO_ntfN+23t{|3Rx9U5Rr- zcN8VzG|%E>uh_V%-vHexP9n|k31^1sL537Mc|4Bf5KXkGMq!`y$Jpb)lpKu1K|E%g z^E#}PbP!F^v|5`&fG!$E7=0{s%XPRj`cF)w1Q zq1QR#B+3-K*ucK`I?fd3*@o`gJ9O9Ip}S$7>X!A^JU?J&@K9XxSv)*Ie$^` zXlp{g8oj^t(}{LoC#JRQ!GOUTK%;$2KY{EgSvsLFw(V8(Gu1am9g9C~>-SCnJ6d<9 z)3?s+U|0>#;yc%96Csd&{XA^vooD}_39_52WA`;H^QC?d%@;PxMSCDw+CC^W)HcI* z=}3F9bw>bbgfVac4s= z&$!QZZ`OeCAC)~a*iDlp+Rf=D`SQl_9hu(__dU!XOlsd}``#~ix4Bpvinmb3>uzY> zE9~DqpL^%Q`Gaz?{HJ74*iVZ)POhBmf$jNn(L)C1yE51IYiz5yyc5J-5j^T~i|@IL zJJ0qf1#n#68se@xsAN4ZH9FsUwtSh63$4Um6Flm1f0xp6=h;4yEwLELI;`Vepzp=l zdhv+y*z#EaveH|=x?YSe%fG9A%YUkPmQ~!h;x+yMr}oa<()?I9_5XFfWnND!&D&|E z`*K?8KAcjz-jn1`n&)Zp@5KzOEZ*DCXY3W~Q8YYpzm=zxllcY-^8PWVvxNLUxn3;fN#C|nXQ3;b{OiSVg#MfgnkT=+uR5UvVe z3SSAELNgz7b57*Q+_^bV=jeR>=94!y;pe=W<46AJnBzw+=$PY2UFewej#DE#YRAv@ zGRKd)(U})GKxdBN1D*MT8+34npLt@AAAF%RpKyoH+`=O|^9-lx;2J;k%N##=M&~}j zIXd?Q{?WNV^a5S8AMS;FVD8Pic{UHO*L=Ai=S_a}#NVFJLpH(L#HAyH@Ao5t6jVq&Ldd3K6AY15 zDvN@LEa(L&9TysI?yvM7X;!IJg+0iIVMqG~X>Lmldvo0|Lj4lznU6W-+Q%ORiF{`Z z=r@1*86wrEM6yQ(I%(+$dEb{bZ8r(xQ|nTXoYtp!n# zw9`28!|0-0IM{D*hJ9+Kp80C_TDp$D`I*;vRyZs)vVK2Vk8`K&KP4E|G$3A4^SwUx zVC83Enp-|7K_*5I-Nbt%P98;l@+j*+%k@8qH;8*=;r8Gjlx>!sP5rKTlRN8kdHQXxdpQSeU*!65 zZ#9mhU^S(e#LFAQIkNiJx$l0uH7K0V+Wm(&m$_IX`K#vs8uOYrGyPxp=iV8yf5%N` z--&yf{xG}a#LB)#=pJ&DCfsxH%0%4@=;nTTC-A#RFe>`Z&U5Z}lI}e@Fu%Mt_}yzx z#fyH)(c+z?%gHpqloh{of>F`$a|zAwB;D82#TNuG!eqP)yIT4{t?EnY)rdQBr8RXW zqY&17Jw}*FvJH1cXFB}jK3Wo%KvyTWzg<}H$txgChg;T<5;f!!rm=_j= zbHaIHQ7FelY!(yuo3X`aaaxQPuf6%iO-|TZ+>Eg!eq@ZXBNt?hu_G^JjCse&5gEB- zXZbS5j=YgsU8n&vs}c1;X7!>r$fy~1Rwu^TQ7>dxPilwEYD*oFS)HjVGHQ*T)t51L z)ESxeftn+;o=|^e)*pI-tlSUlh4sK{Z#B0%TOBN4tC!_taT6asv9o9U!OLK8{L&NZ ZhAro#4D5)9+S6b5#D5v%Vj-RpegI;Np)UXc literal 0 HcmV?d00001 diff --git a/test/tests/mesh/stitched_mesh/stitched_mesh.i b/test/tests/mesh/stitched_mesh/stitched_mesh.i new file mode 100644 index 000000000000..8686c7a8ac07 --- /dev/null +++ b/test/tests/mesh/stitched_mesh/stitched_mesh.i @@ -0,0 +1,48 @@ +[Mesh] + type = StitchedMesh + files = 'left.e center.e right.e' + stitch_boundaries = 'right left right left' + parallel_type = 'replicated' +[] + +[Variables] + [./u] + [../] +[] + +[Kernels] + [./diff] + type = Diffusion + variable = u + [../] +[] + +[BCs] + [./left] + type = DirichletBC + variable = u + boundary = left + value = 0 + [../] + [./right] + type = DirichletBC + variable = u + boundary = right + value = 1 + [../] +[] + +[Executioner] + type = Steady + + # Preconditioned JFNK (default) + solve_type = 'PJFNK' + + + petsc_options_iname = '-pc_type -pc_hypre_type' + petsc_options_value = 'hypre boomeramg' +[] + +[Outputs] + exodus = true +[] diff --git a/test/tests/mesh/stitched_mesh/tests b/test/tests/mesh/stitched_mesh/tests new file mode 100644 index 000000000000..04339a05e6fd --- /dev/null +++ b/test/tests/mesh/stitched_mesh/tests @@ -0,0 +1,7 @@ +[Tests] + [./test] + type = 'Exodiff' + input = 'stitched_mesh.i' + exodiff = 'stitched_mesh_out.e' + [../] +[]