📄 diagnostics_how_to.ps
字号:
4CCB7FA2047E727F4C727FA24B48727F4B48727F8B4B48844B48727F8B4B48844BCD7F8C037E8603FE747F4A48747F14030207757F020F89021F87DA7FFE8802FF517F01036D507F011F6E4F14C00003B600E096B612F8B700FC060F92B5FCA6>136141 125 268 143 88 D<ED0FFF92B512F0020314FE020F6E7E91263FF00313E0913AFF80007FF8D901FCC7EA1FFCD903F0EC07FE49486E6C7E49486E7F49C97F013E707E017E163F017C8349707EA24848707E13FF02C06F7E80486D6F7F80A3727FA46C5BA238007FC06D5A90CAFCA8053FB5FC040FB6FC4BB7FC031F1401037F1380913903FFF800020F13C0DA3FFEC7FCECFFF8010313E0495B011F90C8FC495A495A495A485B485B485BA2485B4890C9FCA248481A3CA2127F5BA3485A60A460A3606D160E007F171E606D716C1378003F17786C6C16F06E4A486C6C13F06C6DEC03C06C6D020790391FF801E06C6DDA1F00EBFC036C6D023E90390FFF9FC026007FFED901FC6DEBFF8090281FFFE00FF06D1400010790B5486D5B010103806D13F8D9003F01FCC8EA1FC0020101C092C8FC565E78DB5F>97D<EE1FFE4BB512E0030F14FC033F14FF9226FFF00113C00203903980001FF0DA0FFEC7EA03F8DA1FF8EC00FE4A48157FDAFFE0ED1F8049496F7E49496F7E4990C912034948707E4948707EA24948177C4948EE07FC01FF171F4A163F484E7E484916FFA25A5C5AA291CAFC48725AA2F11FF04848715A96C8FCA2127FA35BA312FFAF127F7FA4123FA27FA27EA2806CF10780A26C6D170F1B007E6E5F6C191E806C6D173E017F606E17786D6C17F8011F606D6C16016D6D4B5A6D6D4B5A6D6D4B5A6D6D4BC7FC6E6C153EDA1FFE15FC6E6C6C495A020301E0EB0FE0020001FCEB7FC0033FB6C8FC030F14FC030114E09226001FFEC9FC495E7ADB54>99 D[<1B7E96380FFFFE0603B5FCA6F00003F1007F1A3F1A1FA21A0FB3B3A3EE0FFE4BB512E0030F14FC033F14FF9226FFFC0013C0020301E0EB0FE0020F90C7EA03F8DA1FFCEC00FC4A48153EDAFFE0151F4949ED0F8F4949ED07CF4990C9EA03EF4948EE01FF494882133F4A177F4948173F13FF4A171F5A4849170FA2485BA25A91CBFC5AA3485AA4127FA25BA312FFAF127FA37FA3123FA3121F7FA27EA26C7FA21A1F6C7F6C193F806C197F80017F18FF6D6C5E6D6C17EF6D6C1603963807CFFF6D6CEE0F8F6D6DDB1F0F7F6D6D037E809026007FF003FC14F86E6CDA01F8ECFFF8DA1FFEEC07E0912607FF80EB3FC002019039F003FF006E6CB512FC031F14F003030280EDFE009226003FF8C701C0C7FC>93 145122 270 106 I<F33FC0DCFFE0913803FFF0030F01FE021F13FC033F6D6C017F13FE92B600E0EBFFC00203903C803FF803FC01FF913C0FFE000FFE07E0DA1FF8903A03FF1F8003DA7FF06D9038FF0001DAFFC09038007FFC494D14FE4949023FEC00FC92C8001F150049486F7E010F8349486F7EA2013F844A81017F84A301FF844A81A34885AB6C61A36E5D017F60A3013F606E5D011F95C8FCA26D6C4B5A01075F6D6C4B5A6F143F6D6D4A5A6D5F4901F049485A902603DFF84990C9FCDACFFEEB0FFE903B0783FF803FF8020090B512E049013F1480030F49CAFC011E010013E093CCFCA3133EA6133FA280131F8080806D7E14FE6DB712FEF0FFFC6DEFFFC06D18F86D18FE6E717E021F18E091BA7E010319FCD90FFEC8000180D93FF0DB00077FD97FC0DC007F138049CB121F4848060713C04848060113E04848844848F17FF0001F1A3F49191F48481AF81B0F485A1B071CFC12FF90CD1203A76D1907007F1BF8A26D190F003F1BF06D191F6C6CF13FE06C6CF17FC0A26C6CF1FF806CB4060313006C6D4D5A6C6C6CEF0FF8D93FF0EF3FF0D91FFCEFFFE0D907FF04031380010101E0DB1FFEC7FC9026007FFCEDFFF891261FFFE0011F13E0020390B7C8FCDA007F15F8030F15C0DB003F01F0C9FC58877CDB5F>103 D[<EB07F0497E497E497E497E90B57EA76D90C7FC6D5A6D5A6D5A6D5A90C9FCB3ABEC1F8048B5FC127FA6C67E131F7F7FA27FB3B3B3AF497F497F013F13F8B712F8A6>37 137 121 264 52 105 D<023F913801FFE00003B5021F13FEB6027FEBFFC04CB612F0932607FC0113FC933A0FC0003FFE4CC7EA0FFF047E02037FC603F86E7F011F4948826D4A806D49486F7E4B5A6D49C96C7EA2151E031C707E153C153815780370707E15F05DA45DA45DB3B3B0496D4C7E496D4C7F013F01F893B512E0B700FE0103B712F8A65D5B79DA6A>110 D<EE0FFF93B512F0030714FE033FECFFC09226FFF80113F002039039C0003FFC4A48C7EA07FEDA1FF8913801FF804A486E7FDA7FC0ED3FE04A486F7E4990C96C7E4948707E4948707E010F844948707F4948707FA24948717E4948717EA248864849717EA24890CB6C7EA24886A24984001F1B80A2003F1BC0A34984007F1BE0A500FF1BF0AF007F1BE0A36D60A2003F1BC0A4001F1B806D606C1B00A36C6D4D5AA26C626E173F6C626C6D4D5AA26D6C4D5A013F616D6C4C5B6E5E6D6C4C90C7FC6D6C4C5A6D606D01C0ED3FF86D6D4B5ADA3FF0EDFFC0DA1FFC02035BDA07FE4A48C8FC912603FFC0EB3FFC02009039F801FFF0033FB612C0030F92C9FC030114F8DB000F90CAFC545E7BDB5F>I<DBFFF8EB01C0021F9038FF800391B612E00107EDF807011F90390007FE0FD93FF0903800FF1FD9FF80EC3F9F4848C8EA0FFF48488148488148488149814848167F123F49163F181F127F90CA120FA25A1807A47F18037FA27F6C7E7F7F6C6C93C7FC7F6C13C014F86C13FF6C14F8EDFFC06C15FEC6EDFFC06D15F86D15FE010F6F7E6D16E0010182D9003F81020715FEDA007F8003031580ED003F040114C0DC003F13E0050F13F0170300F07013F883187F6CEF3FFC181F180F19FE18077E1803A36C1701A37EA36D17FCA26D1603A26D17F818076D17F06D160F19E06D161F01BEEE3FC0011FEE7F806EEDFF0026FE0FE04A5A6D6CEC07FC26FC01FCEC3FF03CF800FFC003FFE0023FB6128048010F4AC7FC020314F0489026003FFEC8FC3F5E7BDB4A>115D<15F0A91401A61403A41407A4140FA2141FA2143FA2147FA214FF5B5B5B5B5B137F90B9FC120FBAFCA4C7D87FF0C9FCB3B3AAF001E0B218036E6C15C0A418076E6C1580A2020FED0F008102075D6F141E6E6D5B6E6D137C6E6D5B6F6C485A92393FFC07E06FB55A03075C030049C7FCEE1FF03B817DFE49>I E endTeXDict begin1 0 bop 650 91 a Fc(Adding)60 b(Diagnostics)h(to)h(X)-5b(OOPIC)37 600 y Fb(I.)135 b(A)45 b(top)g(lev)l(el)h(explanation)h(of)e(ho)l(w)g(X)l(OOPIC)g(runs)184 1048 y Fa(The)i(X)m(OOPIC)g(GUI,)f(X)m(Gra\014x,)i(con)m(trols)d(the)i(sim)m(ulation)c(once)k(it)g(is)g(running.)37 1257 y(Based)39 b(on)g(user)g(input,)e(it)h(displa)m(ys)g(diagnostics)e(or)i(runs)h(the)g(sim)m(ulation.)184 1586y(X)m(Gra\014x)k(causes)i(the)f(sim)m(ulation)d(to)j(adv)-7b(ance)45 b(a)f(timestep)e(b)m(y)j(calling)e(the)h(X)m(G-)371795 y(MainLo)s(op\(\))55 b(function,)k(\(in)d(xgmain.C\))c(whic)m(h)k(in)g(turn)g(calls)g(Ph)m(ysics\(\),)j(whic)m(h)37 2004y(executes)35 b(the)g(n)m(umerical)d(mo)s(del)h(of)i(the)g(sim)m(ulation,)c(and)k(Main)m(tain)p 3196 2004 36 4 v 40 w(Diagnostics\(\),)37 2214 y(whic)m(h)j(extracts)g(information)c(from)i(the)j(ph)m(ysics)f(mo)s(del)f(for)h(examination.)184 2543 y(Summarizing:)k(The)30b(user)h(con)m(trols)d(X)m(Gra\014x,)i(X)m(Gra\014x)f(calls/con)m(trols)e(X)m(GMain-)37 2752 y(Lo)s(op,)39 b(whic)m(h)e(calls)h(Ph)m(ysics\(\))f(and)i(Main)m(tain)p 2172 2752 V 40 w(Diagnostics\(\).)1843081 y(It)j(is)g(in)g(Main)m(tain)p 1046 3081 V 40 w(Diagnostics)e(that)h(one)h(w)m(ould)e(pro)s(cess)i(ra)m(w)f(Ph)m(ysics\(\))f(data,)37 3291 y(suc)m(h)30 b(as)f(taking)e(FFT's)j(of)e(electric)g(\014elds)h(on)g(the)g(mesh,)h(or)e(main)m(taining)d(a)k(history)e(of)373500 y(some)33 b(quan)m(tit)m(y)-10 b(.)48 b(Main)m(tain)p1300 3500 V 39 w(Diagnostics)33 b(in)h(turn)f(calls)g(history\(\),)f(whic)m(h)h(main)m(tains)37 3709 y(quan)m(tities)k(as)i(a)f(function)g(of)g(time.)37 4218 y Fb(I)t(I.)135 b(Files)46 b(to)f(mo)t(dify)g(to)h(add)e(a)h(diagnostic)184 4666 y Fa(These)53 b(are)f(the)h(\014les)g(whic)m(h)f(are)g(relev)-7 b(an)m(t)52 b(to)g(initializing)d(and)k(main)m(taining)48 b(a)37 4875 y(diagnostic:)p eop2 1 bop 184 47 a Fb(xg/diagn.C)p Fa(:)34 b(This)f(\014le)h(con)m(tains)d(the)j(function)e(Set)p 2628 47 36 4 v 41 w(Diagnostics\(\),)g(whic)m(h)g(gets)37 256 y(initializes)k(the)j(diagnostic)d(arra)m(ys)h(and)i(sets)g(up)g(histories,)d(and)j(gets)184 585 y Fb(xg/init)l(win.C)pFa(:)c(This)d(\014le)h(con)m(tains)e(the)i(calls)f(to)g(X)m(Gra\014x2.0,)f(whic)m(h)h(set)h(up)g(the)37 794 y(graphics)38b(windo)m(ws)f(for)h(the)g(diagnostics.)184 1124 y Fb(xg/diagn.h)pFa(:)56 b(declarations)38 b(and)i(de\014nitions)g(for)f(the)i(diagnostics.)54 b(It)41 b(is)f(also)g(a)37 1333 y(means)e(of)g(giving)f(init)m(win.C)f(access)j(to)f(v)-7 b(ariables)37 b(declared)h(in)g(diagn.C.)184 1662 y(F)-10 b(or)43 b(some)f(diagnostics,)g(y)m(ou)h(migh)m(t)e(ha)m(v)m(e)h(to)h(mo)s(dify)e(the)i(\014les)h(in)f(the)g(ph)m(ysics/)37 1871 y(to)c(ha)m(v)m(e)e(them)h(pro)m(vide)f(additional)f(data)h(for)h(y)m(our)g(diagnostics.)372381 y Fb(I)t(I)t(I.)135 b(Example)46 b(of)f(adding)g(a)g(simple)h(diagnostic)184 2828 y Fa(Supp)s(ose)29 b(a)g(time)e(history)h(of)h(the)g(electrostatic)c(p)s(oten)m(tial)i(at)i(a)f(p)s(oin)m(t)h(A)g(is)g(needed.)37 3037 y(This)37 b(is)f(a)h(list)e(of)h(the)h(things)e(that)h(w)m(ould)f(need)i(to)f(b)s(e)h(done)g(to)f(add)g(the)h(diagnostic:)373534 y Fb(A.)135 b(Step)45 b(1)184 3940 y Fa(in)38 b(xg/diagn.C:)1844270 y(A)m(t)g(the)g(top)h(of)f(the)g(\014le,)h(declare)e(a)i(place)f(to)g(store)g(the)g(time)f(history:)184 4599 y Fb(Scalar)45b(*phi)p 848 4599 41 4 v 49 w(history)p 1307 4599 V 49w(at)p 1473 4599 V 49 w(A;)p eop3 2 bop 37 47 a Fb(B.)135 b(Step)45 b(2)184 453 y Fa(In)f(the)f(function)f(Set)p 1174 453 36 4 v 42 w(Diagnostics)f(in)i(xg/diagn.C,)d(allo)s(cate)h(space)j(for)e(this)h(di-)37 662 y(agnostic)37b(and)i(write)e(zeros)h(to)h(the)f(newly)g(allo)s(cated)f(memory)-10b(.)184 992 y Fb(phi)p 379 992 41 4 v 48 w(history)p837 992 V 49 w(at)p 1003 992 V 49 w(A)48 b(=)g(new)h(Scalar[HISTMAX+1];)g(//allo)t(cate)i(mem-)37 1201 y(ory)371410 y(//initialize)d(it)e(to)f(zero:)37 1619 y(memset\(phi)p735 1619 V 50 w(history)p 1195 1619 V 49 w(at)p 13611619 V 49 w(A,0,\(HISTMAX+1\)*sizeof\(Scalar\)\);)1841949 y Fa(It)56 b(is)g(imp)s(ortan)m(t)c(to)j(initialize)f(memory)e(to)j(zero:)86 b(X)m(Gra\014x)54 b(ma)m(y)g(op)s(erate)h(on)372158 y(the)45 b(data)e(b)s(efore)h(it)f(is)i(v)-7 b(alid,)44b(\(suc)m(h)g(as)g(trying)f(to)g(displa)m(y)g(the)i(history)d(b)s(efore)i(the)37 2367 y(sim)m(ulation)j(has)k(adv)-7 b(anced)51b(a)g(timestep\),)f(and)h(man)m(y)e(arc)m(hitectures)f(will)i(crash)g(if)37 2576 y(y)m(ou)39 b(try)e(to)i(access)g(in)m(v)-7b(alid)37 b(\015oating-p)s(oin)m(t)e(data.)37 3073 yFb(C.)135 b(Step)45 b(3)184 3479 y Fa(In)39 b(the)g(history\(\))d(function,)h(add)h(the)h(line:)184 3808 y Fb(phi)p 3793808 V 48 w(history)p 837 3808 V 49 w(at)p 1003 3808V 49 w(A[hist)p 1408 3808 V 49 w(hi])45 b(=)g(phi[jm/2][km/2];)1844138 y Fa(Add)39 b(this)f(line)g(near)g(the)h(line:)1844467 y Fb(energy)p 582 4467 V 49 w(e[hist)p 946 4467V 49 w(hi])46 b(=)e(Uetot;)184 4796 y Fa(in)29 b(the)f(history\(\))f(function.)47 b(A)29 b(history)e(of)i(phi)f(at)h(the)g(grid)e(lo)s(cation)g(\(jm/2,km/2\))37 5005 y(will)39 b(no)m(w)f(b)s(e)j(main)m(tained)36 b(in)j(the)h(arra)m(y)e(\\phi)p 2150 500536 4 v 41 w(history)p 2548 5005 V 40 w(at)p 2693 5005V 41 w(A".)h("jm")e(and)j("km")d(are)37 5214 y(the)42b(maxim)m(um)37 b(v)-7 b(alues)42 b(of)f(j)h(and)g(k)g(resp)s(ectiv)m(ely)-10 b(,)41 b(so)h(this)g(diagnostic)e(will)g(tak)m(e)h(the)peop4 3 bop 37 47 a Fa(p)s(oten)m(tial)37 b(history)g(near)h(the)h(middle)d(of)j(the)f(device.)37 543 y Fb(D.)135 b(Step)45 b(4)184950 y Fa(Also)25 b(in)g(the)h(history)e(function,)j(add)e(the)h(line)fFb(phi)p 2415 950 41 4 v 48 w(history)p 2873 950 V 49w(at)p 3039 950 V 49 w(A[i])31 b(=)e(phi)p 3653 950 V49 w(history)p 4112 950 V 49 w(at)p 4278 950 V 49 w(A[k];)1841488 y Fa(near)38 b(the)h(line:)184 1817 y Fb(energy)p582 1817 V 49 w(e[i])46 b(=)f(energy)p 1389 1817 V 49w(e[k];)184 2147 y Fa(Since)56 b(the)g(time)e(history)h(is)h(tak)m(en)g(through)e(the)j(en)m(tire)e(sim)m(ulation,)h(but)g(the)372356 y(phi)p 207 2356 36 4 v 42 w(history)43 b(arra)m(y)f(has)i(only)f(HISTMAX+1)g(en)m(tries,)h(w)m(e)f(m)m(ust)g("com)m(b")e(the)j(time)372565 y(history)h(p)s(erio)s(dically)-10 b(.)72 b(This)46b(line)g(ensures)g(that)g(this)f(diagnostic)g(will)f(b)s(e)j(prop)s(erly)37 2774 y(com)m(b)s(ed.)37 3271 y Fb(E.)136 b(Step)45b(5)184 3677 y Fa(Add)39 b(this)f(line)g(to)g(diagn.h:)1844006 y Fb(extern)45 b(Scalar)h(*phi)p 1269 4006 41 4v 48 w(history)p 1727 4006 V 49 w(at)p 1893 4006 V 49w(A;)37 4503 y(F.)135 b(Step)45 b(6)184 4909 y Fa(Mak)m(e)28b(the)g(call)f(to)g(X)m(Gra\014x)g(in)h(init)m(win.C)d(whic)m(h)j(will)e(set)j(up)f(a)g(windo)m(w)f(to)g(displa)m(y)37 5119y(this)39 b(data)e(in.)p eop5 4 bop 184 47 a Fa(In)39 b(init)m(win.C,)c(add)k(these)g(lines)f(to)g(the)h(InitWin\(\))e(function:)184 376 y Fb(X)l(GSet2D\("linlin","phi",)g("P)l(oten)l(tial)32 b(history)f(at)f(p)t(oin)l(t)h(A",)i("closed",)37 585 y(700,400,)48 b(1.0,1.0,T)-11b(rue,T)g(rue,0,0,0.0,0.0\);)37 794 y(X)l(GCurv)l(e\(t)p708 794 41 4 v 49 w(arra)l(y)g(,)46 b(phi)p 1323 794V 49 w(history)p 1782 794 V 49 w(at)p 1948 794 V 49 w(A,)e(&hist)p2502 794 V 49 w(hi,)h(1\);)184 1124 y Fa(These)34 b(function)e(calls)h(are)g(from)e(the)i(X)m(Gra\014x)g(2.0)f(library)-10b(.)48 b(Refer)33 b(to)g(the)h(man)m(ual)37 1333 y(for)k(X)m(Gra\014x)g(2.0)f(for)h(a)h(description)e(of)h(X)m(Gra\014x)f(and)i(these)f(function)g(calls.)37 1829 y Fb(G.)135 b(Step)45 b(7)1842236 y Fa(Recompile)g(xo)s(opic)h(and)h(examine)e(the)i(diagnostic)e(to)h(see)i(if)e(y)m(ou)h(ha)m(v)m(e)f(carried)37 2445y(out)38 b(the)f(previous)g(steps)g(correctly)-10 b(.)49b(Adding)37 b(this)g(diagnostic)f(to)s(ok)g(9)i(lines)f(of)g(co)s(de.)peop enduserdict /end-hook known{end-hook}if
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -