From 6e2a601fe96e20a58188d736cd7ba4e107fec4ae Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Wed, 6 Feb 2019 17:44:16 -0600 Subject: [PATCH] Adding vacuum BCs to graveyard volumes automatically. --- src/dagmc.cpp | 23 ++++++++++++++++++++++- tests/regression_tests/dagmc/dagmc.h5m | Bin 1233584 -> 1233372 bytes tests/regression_tests/uwuw/dagmc.h5m | Bin 1244548 -> 1244336 bytes 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/dagmc.cpp b/src/dagmc.cpp index 1acef12629..a86f3c3e01 100644 --- a/src/dagmc.cpp +++ b/src/dagmc.cpp @@ -134,7 +134,7 @@ void load_dagmc_geometry() // initialize cell objects model::n_cells = model::DAG->num_entities(3); - + moab::EntityHandle graveyard = 0; for (int i = 0; i < model::n_cells; i++) { moab::EntityHandle vol_handle = model::DAG->entity_by_index(3, i+1); @@ -199,6 +199,11 @@ void load_dagmc_geometry() std::string cmp_str = mat_value; to_lower(cmp_str); + + if (cmp_str.find("graveyard") != std::string::npos) { + graveyard = vol_handle; + } + // material void checks if (cmp_str.find("void") != std::string::npos || cmp_str.find("vacuum") != std::string::npos || @@ -231,6 +236,11 @@ void load_dagmc_geometry() model::overlap_check_count.resize(model::cells.size(), 0); } + if (!graveyard) { + std::cout << "WARNING: No graveyard volume found in the DagMC model.\n"; + std::cout << "This may result in lost particles and rapid simulation failure.\n"; + } + /// Surfaces \\\ // initialize surface objects @@ -271,6 +281,17 @@ void load_dagmc_geometry() s->bc_ = BC_TRANSMIT; } + // graveyard check + moab::Range parent_vols; + rval = model::DAG->moab_instance()->get_parent_meshsets(surf_handle, parent_vols); + MB_CHK_ERR_CONT(rval); + + // if this surface belongs to the graveyard + if (graveyard && parent_vols.find(graveyard) != parent_vols.end()) { + // set BC to vacuum + s->bc_ = BC_VACUUM; + } + // add to global array and map model::surfaces[i] = s; model::surface_map[s->id_] = s->id_; diff --git a/tests/regression_tests/dagmc/dagmc.h5m b/tests/regression_tests/dagmc/dagmc.h5m index 49c28c4f5e32f9d72c4603b128c3fc1fb1a00e4e..a55e061dcac9f0bf284ecd0741d62c1bafb6a77c 100644 GIT binary patch delta 953 zcmdn6)cek2?+F@AcP?(!nkUUTfAdLcWkzPz!syBGWgf{J=^L2o8(K0kKmZ4nHZ->~ zF}5-`-uyu}MgXLEv%g*}Cz!F`T$Tf@{k;85&S0o|mg$1V0^*Z99E_M}=m|`gEtCf< zx$iKOQ$PWtMqqNIqa$+z1LNe{C~>e!_Z@k`4%z(P3Cj5ITr9@)!(wttlmbM*=6^i%Dun_BIjTSH+iyr%FN9PNwXN49#l>KlMFU% zvwVs%6L-T-L9jsq2xov53#3OdPQFnfHMuHLlXIsKSd97BechtXGb`q^fV41*Oy=%Y1X~5tkyNL_C36B@$L95Qm)RI?P*i5M zX)wCLMeGX~ZjNZ*#LDOc7t-&2%@_jXZMN^TW@CyuF}Y?6#Ch|lyk=rKIeAS6BplaI zRc2!fIW_suVu-Z-lGjWwr{P@vrH3b{KWoHIS}gpfLrS_q_;zc?YpIsL;$A&2P#mxNe2-HQ^-QY#aSQYLN`o?dWC$N>Pt C2{g_C delta 1063 zcmaiyT}V@57{||h=1x1u)U!h$n#v3>whA^)WIJ259lbE}A`KB)MoonlVYX6AbeaV1 zq7Rf;IWE%8Y%(u$t8=kT1fjrLhOTau0;MZqgrln>!CuchH|wSYKi-e$|NPJMJm-8J zuMP*Q`*mda)63(d`M@tNo4^G1tbD%9z;1i4EMBvDX|4#XIM^o$ihcq> zxBal}xh7=EB}tnV$<21IVPQHv@0{0PvMyD zbjlfOTD;QbrYC@8yWm!{>?LVh%E-*{v|6sFCS8UsX0J2=dbh1Q=yIajynzpgaO#rt z7X_Wp1F+Gkr)y?7*-!8-gsj;q_rU0zCA83J)I z2lFTJi>woU6iwlOiJ)Muk!R*&*tF#Dai&G9FL)-A6wReYsONhtQ=XM6fFKbHL&8;PW^vEJ7V|Sh!FxP(-q3I3Ef8k-#ih#fXdZoDPhL-{(1PPE%XQ^%lp?PIJAZ zxuc_1{4&qwq1eIbp4cTEi=2pZY8v>(@)%d8{U$36bbYf{>l)TAw&Hq#3+`GgmycO<@#v74^67=Je1 zu4=;GUgiZ^ww${EKC&dLcoMB5>ysGk6j^IW}EM0w7q0egynHQ zczGZ=)W0smvLN#Wc-W#@K`*O<2zC5 z+v!~mKMIj;z9YGL4%xZ#MypOLMQHvIs5;HH*Lr#m6%2#RCEOgl&cun(owtCeg9}T~ z&!IWDeXsIw2f(dw;<3~_Tx+~F^RdtuTk?cRDsXpjKD@ab>}zu8pvkBUY>-x6s1aep z<)I6`L&w8LxuWr_6PnUoS_4h~kd9|8Lv5=N^jtU5*)Y+GK%r24C;^lZN(AKx*2f=ka9L+$Utcfa-ogW}t`M)~651BN6C`n}Qp$ zwelJ1_KWDesdfC?t_U6h3kJuU8l#A_5MW0FHBnxZ_3iG?p z$b!MB^3YmvpBBadzs@fgSb(w<_7rBS|sH(2i8S~R%uq#Bx6nkn9 zyTY$C22YL3Df#=P$4@-nG*4+fO%|wxTq=)3&Ks ze4nXwn4fnoKJN^Mz CUNDUS delta 1565 zcmaJ>eN0nV6z_Ybr7d6Wl~18Q3|U~BQ9w;w%4lo1X=0|RWWmZ*)Qv6@AJRw3lGIZVX^%4}H6LAs%rg%O9?ni!;&7)(q- znDwvkfQw0gVws|>Euu^*%Ag-kV9k(bXJuw@-b{Feh5Y4YVpsb6T*~MY3po^hSZ)^N z2l7J#Yd$=sQ1Y&&^C`cU2leWBDtSg>=7MB83&1+1lG(sOV3j(K(wtF7P$dzITLZ>R z)rnX%O$tw{lWD&4I#lf6%4?F*(h?*n{ZiFNY%f%^!tUkJF-2}r8DdAx#G%7qA}GHS z`j1dr1a@>28rIz_psLARErUwt7Z)JhmA3MsRzuF_2K>B{rVeYKu%Sj14GYET+`OBB zl4ydJ>V#mG8qHd`^hp|X?iPTz6d2W?T&rZ^;iG_qps-DqjSc|3Z3(P__3H2y-b&b9 zA!QZ}0Qg%HMTK3}mkG1Z5<M>KseeZFua{ zRKye9k!#zC0^@fq#24HWeKC(R2BE%+Zdra_#zr}$f02F@mW%V`eLB}jDH2_cDQuMS zEA(HXquAH;sAts`wf_R|TuS4*hUif-UKy2%xYn|Vg}C6eD|B_s+?iNdV_WQJG1|xVEW|Y@oNt*ap%JT%0?5jy+&!@*bjpLmN36unr zLkWQ#9}Ox@kt15MKaJ;gD`CoH-QC3T5avOz&0K})DO~-OZcOHkQ#OP zczNm3qOw!j?-d;>FE7FW=m!a8EN0-9*g-mG+c*FOT%;A>avyBl@E>AeR;x=%(aC_O z$r_6{-v^h`?nzuR0+N}H zd0qb2m?W}h@r5y?JGampflq3~07|B-aW5jBoLrnG#d};#Zph`d9umoal8I#~Z zJbKx0BRv5pKCk)k8w(4aqPyoj70Quj$JEfi=|Ka31n+$c)as9NP8WNVTKdCu0+IWJ z=ASm|V!GVreRYJyDE7uqJ7v1KMR%3HHp(l=b*B2FE$$QgI*~W#2dCHSR1Alq&r{hiN@V!g>{<_ZlB(N z<{NE9r=z@Qo!Irxl;JCFSgE6=M_A$7Id$fyHfq69)q_R3lsN{Ym$S}sM3=PdfGfJ? z_FmoEVb{JK<3lgHbN1~%1McM=a2(SKkGtOOJ7e=kPCF`f80J#x4HvxJTt~4lsrW|5 pL@4g#9h^