From 7ad66e9bf4952d10608284b29eb1eef71a758ddd Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Tue, 26 Nov 2024 11:37:30 -0500 Subject: [PATCH 01/25] added workflow file --- .github/workflows/paper.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .github/workflows/paper.yml diff --git a/.github/workflows/paper.yml b/.github/workflows/paper.yml new file mode 100644 index 0000000..1d7dc44 --- /dev/null +++ b/.github/workflows/paper.yml @@ -0,0 +1,24 @@ +name: Draft PDF +on: [push] + +jobs: + paper: + runs-on: ubuntu-latest + name: Paper Draft + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Build draft PDF + uses: openjournals/openjournals-draft-action@master + with: + journal: joss + # This should be the path to the paper within your repo. + paper-path: paper.md + - name: Upload + uses: actions/upload-artifact@v4 + with: + name: paper + # This is the output path where Pandoc will write the compiled + # PDF. Note, this should be the same directory as the input + # paper.md + path: paper.pdf From 6d3e72dfb5baea1fe6e55b98c6620e4049b90d03 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Tue, 26 Nov 2024 11:39:11 -0500 Subject: [PATCH 02/25] added initial draft --- paper.md | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 paper.md diff --git a/paper.md b/paper.md new file mode 100644 index 0000000..cca45cc --- /dev/null +++ b/paper.md @@ -0,0 +1,61 @@ +--- +title: 'openmc-plasma-source: Pre-built Fusion Neutron Sources for OpenMC' +tags: + - Python + - OpenMC + - neutron sources + - fusion +authors: + - name: Remi Delaporte-Mathurin + corresponding: true + orcid: 0000-0003-1064-8882 + affiliation: 1 + - name: Jon Shimwell + orcid: + affiliation: 2 + +affiliations: + - name: Plasma Science and Fusion Center, MIT, USA + index: 1 + - name: Proxima Fusion, Germanyu + index: 2 + +date: 26 November 2024 +bibliography: paper.bib + +--- + +# Summary + +`openmc-plasma-source` is a Python-based package offering a collection of pre-built neutron sources designed for fusion applications using the Monte Carlo particle transport code OpenMC. By providing ready-to-use implementations for various neutron source configurations, such as tokamak, ring, and point sources, this package simplifies the often complex task of neutron source definition in fusion-related Monte Carlo simulations. These sources are parameterised to account for spatial distributions, plasma temperatures, and fusion fuel compositions, enabling realistic and computationally efficient neutron emission models. + +The package is designed to integrate seamlessly into OpenMC workflows, allowing users to define sources in just a few lines of Python code. It also supports advanced features like temperature-based neutron spectra and spatial source distributions, making it an invaluable tool for researchers simulating neutron behaviour in fusion devices. + +# Statement of need + +Accurate modelling of neutron sources is critical for fusion energy research, underpinning tasks such as reactor shielding design, material testing, and tritium breeding analysis. In this context, OpenMC is a widely used tool for neutron transport simulations. However, creating realistic neutron source models for fusion applications can be a time-consuming and error-prone process, requiring detailed knowledge of plasma physics and significant coding effort. + +Traditionally, researchers have implemented their own custom neutron source definitions, which often results in redundant work and inconsistencies between studies. For example, spatial distributions, temperature effects, and fuel compositions must be correctly parameterised to ensure the fidelity of the simulations. The lack of standardised tools for these tasks introduces variability and potential errors in simulations. + +`openmc-plasma-source` addresses these challenges by providing a standardised and easy-to-use interface for defining neutron sources in OpenMC. The package implements the equations for neutron distributions based on established models, such as those described in [@doi:10.1016/j.fusengdes.2012.02.025]. By automating the setup process and including extensive documentation and examples, it reduces barriers to entry for researchers new to OpenMC or neutron source modelling. + +With pre-built configurations for tokamak, ring, and point sources, `openmc-plasma-source` is suitable for a wide range of applications. For example: +- The **tokamak source** models realistic spatial and temperature distributions, optimised for computational efficiency through the use of ring sources. +- The **ring source** offers a simplified yet effective representation for cylindrical geometries. +- The **point source** is ideal for preliminary studies or cases requiring a concentrated neutron emission. + +The package’s open-source nature and community-driven development further ensure its adaptability and relevance to the evolving needs of the fusion research community. + +![Spatial neutron source density distributions of a tokamak source.\label{fig:tokamak_source}](https://user-images.githubusercontent.com/40028739/135100022-330aa51c-e2a2-401c-9738-90f3e99c84d4.png) + +![3D representation of a tokamak source.\label{fig:3d_tokamak_source}](3d_tokamak_source.png) + +# Example usage + +Examples can be found in the examples folder of the repository. + +# Acknowledgements + +We acknowledge contributions from the OpenMC development team and the fusion energy community for their feedback and support. + +# References From 4ba8cb70162ba077af33526792ece71d3eb7d3a2 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Tue, 26 Nov 2024 11:39:51 -0500 Subject: [PATCH 03/25] jon's orcid --- paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paper.md b/paper.md index cca45cc..7634159 100644 --- a/paper.md +++ b/paper.md @@ -11,7 +11,7 @@ authors: orcid: 0000-0003-1064-8882 affiliation: 1 - name: Jon Shimwell - orcid: + orcid: 0000-0001-6909-0946 affiliation: 2 affiliations: From 3f4c7c0bd88eca16acf491a81e3f35f7e9af3f2f Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Tue, 26 Nov 2024 11:40:06 -0500 Subject: [PATCH 04/25] added figure file --- 3d_tokamak_source.png | Bin 0 -> 83489 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 3d_tokamak_source.png diff --git a/3d_tokamak_source.png b/3d_tokamak_source.png new file mode 100644 index 0000000000000000000000000000000000000000..298402a400e3ca960dd918bbdbcb2a06b0c8df74 GIT binary patch literal 83489 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 z zqLUaz7A^B;BUVQwS)tfjprReFHPUQ`Z{H+PvN-)-fF}Kf0|t$ZRg@Ad?(lav#-$w~ z3C_`qG@F;hYe&w5C`~_pNf?&6{~(i^w#$4D{2XGShHyOuo&Q=Hb;XsUd+bx4KRk}aE3 zd^D!@yF!Xo%PvHlE!#bgS2VvK*XhTSZn{Xt{DZlN=O1QYIVFy5cHVf*K1J?b(Li?-X_1_B(KBO^JxzOfFEF z%{i=-Hy2fl235L1CUI5C#AfzqmDPbLM=%`AEYlBRHKO@G zI3JmF%!OjrnNEbp^XR1JDwMGK zpwFgTaGh@Z1%UAO9huUBo91-r);SkGT{yk0{Cd%~TUHJt{EEsUaVR~OP;$gnml<@z zs^OTCY{E#%h&E;>)gK~;^oBX)DCP{q9l zt(xaeCe$_I){`ZfZe=DY(bF8*hRU~Q3 znz7kYBTVY&@%F!2)@rrlRHgSj=r4rM3z_z$i4*4&XNK4rTt3Tm89->%D>1@~G$v1C z{i?f0G?FG`awran1|`B`0^Jy}X5#GxPc}Y@3FX5%dLgVB(rWrnwI9z#XZ97qKuhZTs_acQqrTOnc1u+CyGj1zqxR7%p8Y`&OMY=aIC6Ckkx(a ziX5>$?Y1iytt?iKSPBQg>T^1|SuNP5$DiG15*5mlg(Y|{o7?8plXhS#*r3bk4e^h0 zO_Any1_A>Nc`@dM3TwKCX63U;5DYj-b z8ma1B%?K}D)lG8?su)2RNXIo&HoA5u#LsOwE7n3R& zaTk`XPDYInO>M@;&5_v0_^Xx5{*I2C{ed*&WD8q4{RZqZZqa%p!1dL2lFs|3@a(JG2JHd}%5*GAi z(aC|4D&0_HoCd=Ki%$;{+dLd2rqpUndS-F!olv2TZM|EdE}!}Jcj$TF@(jJew&%U-X>QE(@T~_l zHZ|h1UH2WC(Zt-C;%Orn+dpo^8i|ojYh;>^E1uXK3k}DO%xYCPP8o$v?X%6-Ua?Ls zYrT?4#B<-ObDmv`$Hy^lOwrCc zcB|9Yb~8r3C98{s)sZRS8sniU5~}RPTg&Qs1nbO=4ZCEZk~y<0E6aNL*u!pU#;=Og zjNzE(&f}UUO}|PFii~jVb}9*DJt%2nXfbjq29yNru3{8=MK_^U6pA0eY_%pX*Bz8N zs52Z5mJsw4{(Aw&db@j|u2BAv1n-8Vt{RPdx1`BFJU2F9*ZdBFa{v77wI2E*nO@OY zHk>L*lQB>-a%np_LM-73fifP>?_?BrQzwn+b^k_C52(n4H_z$LuX&PQ@U73(^S=4% zMx;--zi)Lfte)66rt#@fjZCN97$%BzWGdyzllg?Hk))ftvbp&CCh4I#Nn~+ZvPKMq z8zIzKiliRJVa3BWrHt?(y49tamM%r@ex>P|ybjK0R9XpYV=1oD$)YwE&7n9_ zRk&#PS`8{PZ9j`vH@1Ilyljft9DT^2V!Ecd)gG;^ZcNk46A7~pZd9Wqqe_pYU4903 z4hNJ3MW1{P)~hj$6lUy@5qZ(RwZ|D5wR6U;?^-pva@u~4 zU`&(uYqGX41!pYzhMTT`d_86C0d1WA`|4M}S}%Y3%boorBYh{^w0|MP@BjYqyIcp> zg8jYU`#t^a&;IPz9^2#lzyJH4ZT8!*{_3x8eRK8Tnj%fW!-QCPn5Zx^J-rIq4ug

=w8DwtnO7P^Ft|9FHU&~JOO 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

;~bVEks&41v5DQuKlo!6%DpaoxFIqv(>fQ} zdP2YOcZ#zwTeDP7c+oL(Y?BLQ zbcf&1kz#u)8nmMev-kHP;1bQ&EYs$(ZV-SBo`Fe5BFOWf|NNO(N&|v~SP1>ijN2@e;x67)7SIWqaetGE68lp7|V$zL1x5B z5uD|0TLC;Pf|tn^gl)RV(j$JEFVmN#4lK}Yu2LgQvlM7^sqGE}>kU#QM#la~ey4H` z@v@*rk6SaBd#PH0+#pQGxlq@2KJa{9z| z-^16)U+#TK`gaV=zE4@_wx3YsV7PxwtxhE!{qDtTVJ_3p9saESlq4f^@15&qsCQJR zN2jE@H6p8?xlDQ2pM7TrJJMJ|(oJs$dMZOESUxBQkWilF69< zyQNX0%c2rpnvtYh#=UCU_CMAt)0?#)29!vLk`fsn+ihhkL((f$HsXxXl+J~y_7h1? zRQzF&CbeewJ7S$Y@9g7T25mO5t{@&1bLJl7g7x`{Pkh38d>9WDRTOXLXTEVQ1UB|| zF`xhOAOBG=YZ~jO zoKkni08fLthQpqQN&zJX0fBOch7A#6o$p=r)zDi#9E?CLP?j5)3%~T$*EbUca2CY zHYJlf#m2{@(ws=C0@oyuJ=iMSc1Bb-L}goFTprudB!75(sjTZt%F<4}2ML{*G1;zG z=I}_P^babbsjwfMYLqDzo$0Y@ndptUnzfl#acNkr7NhF0gFVeMu(eetwl+#^G^1px z@17yd224s_f4k=%iAAccDvz=TJG70g&FQJMEM2omj(OqJ+;L!qz$p|e7vBE%w>xhd zUKGaTr$7CvTXXMu&wFOxSvg#H-E~e$I``ajXI{w-ju68WLFP6E-os&=Jqh#DJ&TZn z5O7(bK{J^UluWE#pc`(y@kS@;iWOo^9KOdAWDpj(dCL*XkRxs~bMKmKnV3eQ!j1M2 z2MJm+LBgyiSpsu|+5xvl$O0*=RFyL-wyyHK$fZ*Ms00u(Ywr zP!jkZ!ogxQH*Ph@A{&@fC@*9Q^9+@Qtv{?-#uw`oi^tr!%t_p_kN#6g)=G1;}LPg$kGZSLRepw+VGz!kFLFWcqb+aH$4@82p> zC8Ey7t+MZ_t7KEp<4Rh?YQ@E6^%0AtqrG2xxA#k`XIxr3({jW?I~{R$Hbx~89hTMm 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 Date: Tue, 26 Nov 2024 11:41:28 -0500 Subject: [PATCH 05/25] removed bib file --- paper.md | 1 - 1 file changed, 1 deletion(-) diff --git a/paper.md b/paper.md index 7634159..d5d79e4 100644 --- a/paper.md +++ b/paper.md @@ -21,7 +21,6 @@ affiliations: index: 2 date: 26 November 2024 -bibliography: paper.bib --- From 3179d5a8d5c7e4b37b2941dab0e0222f7138ecef Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Tue, 26 Nov 2024 11:46:02 -0500 Subject: [PATCH 06/25] proper reference --- paper.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/paper.md b/paper.md index d5d79e4..8f0fb86 100644 --- a/paper.md +++ b/paper.md @@ -21,6 +21,7 @@ affiliations: index: 2 date: 26 November 2024 +bibliography: paper.bib --- @@ -36,7 +37,7 @@ Accurate modelling of neutron sources is critical for fusion energy research, un Traditionally, researchers have implemented their own custom neutron source definitions, which often results in redundant work and inconsistencies between studies. For example, spatial distributions, temperature effects, and fuel compositions must be correctly parameterised to ensure the fidelity of the simulations. The lack of standardised tools for these tasks introduces variability and potential errors in simulations. -`openmc-plasma-source` addresses these challenges by providing a standardised and easy-to-use interface for defining neutron sources in OpenMC. The package implements the equations for neutron distributions based on established models, such as those described in [@doi:10.1016/j.fusengdes.2012.02.025]. By automating the setup process and including extensive documentation and examples, it reduces barriers to entry for researchers new to OpenMC or neutron source modelling. +`openmc-plasma-source` addresses these challenges by providing a standardised and easy-to-use interface for defining neutron sources in OpenMC. The package implements the equations for neutron distributions based on established models, such as those described in `@fausser_tokamak_2012`. By automating the setup process and including extensive documentation and examples, it reduces barriers to entry for researchers new to OpenMC or neutron source modelling. With pre-built configurations for tokamak, ring, and point sources, `openmc-plasma-source` is suitable for a wide range of applications. For example: - The **tokamak source** models realistic spatial and temperature distributions, optimised for computational efficiency through the use of ring sources. From 882ea533cad8ef8222afff564ab3cec4b0666b29 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Tue, 26 Nov 2024 11:46:07 -0500 Subject: [PATCH 07/25] bibfile --- paper.bib | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 paper.bib diff --git a/paper.bib b/paper.bib new file mode 100644 index 0000000..5eb2d6b --- /dev/null +++ b/paper.bib @@ -0,0 +1,18 @@ +@article{fausser_tokamak_2012, + series = {Tenth {International} {Symposium} on {Fusion} {Nuclear} {Technology} ({ISFNT}-10)}, + title = {Tokamak {D}-{T} neutron source models for different plasma physics confinement modes}, + volume = {87}, + issn = {0920-3796}, + url = {https://www.sciencedirect.com/science/article/pii/S0920379612000853}, + doi = {10.1016/j.fusengdes.2012.02.025}, + abstract = {Neutronic studies of European demonstration fusion power plant (DEMO) have been so far based on plasma physics low confinement mode (L-mode). Future tokamaks, nevertheless, may likely use alternative confinement modes such as high or advanced confinement modes (H\&A-mode). Based on analytical formulae used in plasma physics, H\&A-modes D-T neutron sources formulae are proposed in this paper. For that purpose, a tokamak random neutron source generator, TRANSGEN, has been built generating bidimensional (radial and poloidal) neutron source maps to be used as input for neutronics Monte-Carlo codes (TRIPOLI-4 and MCNP5). The impact of such a source on the neutronic behavior of the European DEMO-2007 Helium-cooled lithium–lead reactor concept has been assessed and compared with previous results obtained using a L-mode neutron source. An A-mode neutron source map from TRANSGEN has been used with the code TRIPOLI-4. Assuming the same fusion power, results show that main reactor global neutronic parameters, e.g. tritium breeding ratio and neutron multiplication factor, evolved slightly when compared to present uncertainties margin. However, local parameters, such as the neutron wall loading (NWL), change significantly compared to L-mode shape: from −22\% to +11\% for NWL.}, + language = {en}, + number = {5}, + urldate = {2021-09-21}, + journal = {Fusion Engineering and Design}, + author = {Fausser, Clement and Puma, Antonella Li and Gabriel, Franck and Villari, Rosaria}, + month = aug, + year = {2012}, + keywords = {DEMO, Neutronics, TRIPOLI-4, Plasma source description}, + pages = {787--792}, +} \ No newline at end of file From 69fbd88f01ef1bdb0987db1aae8c621364e5482e Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Tue, 26 Nov 2024 11:51:58 -0500 Subject: [PATCH 08/25] no ` ` --- paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paper.md b/paper.md index 8f0fb86..a6340a7 100644 --- a/paper.md +++ b/paper.md @@ -37,7 +37,7 @@ Accurate modelling of neutron sources is critical for fusion energy research, un Traditionally, researchers have implemented their own custom neutron source definitions, which often results in redundant work and inconsistencies between studies. For example, spatial distributions, temperature effects, and fuel compositions must be correctly parameterised to ensure the fidelity of the simulations. The lack of standardised tools for these tasks introduces variability and potential errors in simulations. -`openmc-plasma-source` addresses these challenges by providing a standardised and easy-to-use interface for defining neutron sources in OpenMC. The package implements the equations for neutron distributions based on established models, such as those described in `@fausser_tokamak_2012`. By automating the setup process and including extensive documentation and examples, it reduces barriers to entry for researchers new to OpenMC or neutron source modelling. +`openmc-plasma-source` addresses these challenges by providing a standardised and easy-to-use interface for defining neutron sources in OpenMC. The package implements the equations for neutron distributions based on established models, such as those described in @fausser_tokamak_2012. By automating the setup process and including extensive documentation and examples, it reduces barriers to entry for researchers new to OpenMC or neutron source modelling. With pre-built configurations for tokamak, ring, and point sources, `openmc-plasma-source` is suitable for a wide range of applications. For example: - The **tokamak source** models realistic spatial and temperature distributions, optimised for computational efficiency through the use of ring sources. From 88c52e5ed54f342f6dedeb22af3ca5c0263d5225 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Tue, 26 Nov 2024 11:54:05 -0500 Subject: [PATCH 09/25] try list with blank lines --- paper.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/paper.md b/paper.md index a6340a7..dbbbb09 100644 --- a/paper.md +++ b/paper.md @@ -40,10 +40,12 @@ Traditionally, researchers have implemented their own custom neutron source defi `openmc-plasma-source` addresses these challenges by providing a standardised and easy-to-use interface for defining neutron sources in OpenMC. The package implements the equations for neutron distributions based on established models, such as those described in @fausser_tokamak_2012. By automating the setup process and including extensive documentation and examples, it reduces barriers to entry for researchers new to OpenMC or neutron source modelling. With pre-built configurations for tokamak, ring, and point sources, `openmc-plasma-source` is suitable for a wide range of applications. For example: + - The **tokamak source** models realistic spatial and temperature distributions, optimised for computational efficiency through the use of ring sources. - The **ring source** offers a simplified yet effective representation for cylindrical geometries. - The **point source** is ideal for preliminary studies or cases requiring a concentrated neutron emission. + The package’s open-source nature and community-driven development further ensure its adaptability and relevance to the evolving needs of the fusion research community. ![Spatial neutron source density distributions of a tokamak source.\label{fig:tokamak_source}](https://user-images.githubusercontent.com/40028739/135100022-330aa51c-e2a2-401c-9738-90f3e99c84d4.png) From b8f381ed16bd26817abe09ff76fd7bc5677b3c56 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Tue, 26 Nov 2024 11:55:32 -0500 Subject: [PATCH 10/25] openmc ref --- paper.bib | 22 +++++++++++++++++++++- paper.md | 4 ++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/paper.bib b/paper.bib index 5eb2d6b..715f0fc 100644 --- a/paper.bib +++ b/paper.bib @@ -15,4 +15,24 @@ @article{fausser_tokamak_2012 year = {2012}, keywords = {DEMO, Neutronics, TRIPOLI-4, Plasma source description}, pages = {787--792}, -} \ No newline at end of file +} + +@article{romano_openmc_2015, + series = {Joint {International} {Conference} on {Supercomputing} in {Nuclear} {Applications} and {Monte} {Carlo} 2013, {SNA} + {MC} 2013. {Pluri}- and {Trans}-disciplinarity, {Towards} {New} {Modeling} and {Numerical} {Simulation} {Paradigms}}, + title = {{OpenMC}: {A} state-of-the-art {Monte} {Carlo} code for research and development}, + volume = {82}, + issn = {0306-4549}, + shorttitle = {{OpenMC}}, + url = {https://www.sciencedirect.com/science/article/pii/S030645491400379X}, + doi = {10.1016/j.anucene.2014.07.048}, + abstract = {This paper gives an overview of OpenMC, an open source Monte Carlo particle transport code recently developed at the Massachusetts Institute of Technology. OpenMC uses continuous-energy cross sections and a constructive solid geometry representation, enabling high-fidelity modeling of nuclear reactors and other systems. Modern, portable input/output file formats are used in OpenMC: XML for input, and HDF5 for output. High performance parallel algorithms in OpenMC have demonstrated near-linear scaling to over 100,000 processors on modern supercomputers. Other topics discussed in this paper include plotting, CMFD acceleration, variance reduction, eigenvalue calculations, and software development processes.}, + language = {en}, + urldate = {2022-03-31}, + journal = {Annals of Nuclear Energy}, + author = {Romano, Paul K. and Horelik, Nicholas E. and Herman, Bryan R. and Nelson, Adam G. and Forget, Benoit and Smith, Kord}, + month = aug, + year = {2015}, + keywords = {Monte Carlo, Parallel, HDF5, Neutron transport, OpenMC, XML}, + pages = {90--97}, + file = {ScienceDirect Snapshot:C\:\\Users\\remidm\\Zotero\\storage\\7Z6DVQXL\\S030645491400379X.html:text/html}, +} diff --git a/paper.md b/paper.md index dbbbb09..8f1c798 100644 --- a/paper.md +++ b/paper.md @@ -27,13 +27,13 @@ bibliography: paper.bib # Summary -`openmc-plasma-source` is a Python-based package offering a collection of pre-built neutron sources designed for fusion applications using the Monte Carlo particle transport code OpenMC. By providing ready-to-use implementations for various neutron source configurations, such as tokamak, ring, and point sources, this package simplifies the often complex task of neutron source definition in fusion-related Monte Carlo simulations. These sources are parameterised to account for spatial distributions, plasma temperatures, and fusion fuel compositions, enabling realistic and computationally efficient neutron emission models. +`openmc-plasma-source` is a Python-based package offering a collection of pre-built neutron sources designed for fusion applications using the Monte Carlo particle transport code OpenMC [@romano_openmc_2015]. By providing ready-to-use implementations for various neutron source configurations, such as tokamak, ring, and point sources, this package simplifies the often complex task of neutron source definition in fusion-related Monte Carlo simulations. These sources are parameterised to account for spatial distributions, plasma temperatures, and fusion fuel compositions, enabling realistic and computationally efficient neutron emission models. The package is designed to integrate seamlessly into OpenMC workflows, allowing users to define sources in just a few lines of Python code. It also supports advanced features like temperature-based neutron spectra and spatial source distributions, making it an invaluable tool for researchers simulating neutron behaviour in fusion devices. # Statement of need -Accurate modelling of neutron sources is critical for fusion energy research, underpinning tasks such as reactor shielding design, material testing, and tritium breeding analysis. In this context, OpenMC is a widely used tool for neutron transport simulations. However, creating realistic neutron source models for fusion applications can be a time-consuming and error-prone process, requiring detailed knowledge of plasma physics and significant coding effort. +Accurate modelling of neutron sources is critical for fusion energy research, underpinning tasks such as reactor shielding design, material testing, and tritium breeding analysis. In this context, OpenMC is a widely used tool for neutron transport simulations [@romano_openmc_2015]. However, creating realistic neutron source models for fusion applications can be a time-consuming and error-prone process, requiring detailed knowledge of plasma physics and significant coding effort. Traditionally, researchers have implemented their own custom neutron source definitions, which often results in redundant work and inconsistencies between studies. For example, spatial distributions, temperature effects, and fuel compositions must be correctly parameterised to ensure the fidelity of the simulations. The lack of standardised tools for these tasks introduces variability and potential errors in simulations. From da38286010890d1636e64044095f4b41b2978e95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Delaporte-Mathurin?= <40028739+RemDelaporteMathurin@users.noreply.github.com> Date: Tue, 26 Nov 2024 17:06:59 -0500 Subject: [PATCH 11/25] Update paper.md Co-authored-by: Jonathan Shimwell --- paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paper.md b/paper.md index 8f1c798..051d7cb 100644 --- a/paper.md +++ b/paper.md @@ -43,7 +43,7 @@ With pre-built configurations for tokamak, ring, and point sources, `openmc-plas - The **tokamak source** models realistic spatial and temperature distributions, optimised for computational efficiency through the use of ring sources. - The **ring source** offers a simplified yet effective representation for cylindrical geometries. -- The **point source** is ideal for preliminary studies or cases requiring a concentrated neutron emission. +- The **point source** is ideal for preliminary studies or cases requiring a concentrated neutron emission found in inertial confinement fusion. The package’s open-source nature and community-driven development further ensure its adaptability and relevance to the evolving needs of the fusion research community. From 3600921b20350e48c5c9badc9cbcffb399f81fbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Delaporte-Mathurin?= <40028739+RemDelaporteMathurin@users.noreply.github.com> Date: Tue, 26 Nov 2024 17:09:26 -0500 Subject: [PATCH 12/25] Jonathan instead of Jon Co-authored-by: Jonathan Shimwell --- paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paper.md b/paper.md index 051d7cb..22f5b05 100644 --- a/paper.md +++ b/paper.md @@ -10,7 +10,7 @@ authors: corresponding: true orcid: 0000-0003-1064-8882 affiliation: 1 - - name: Jon Shimwell + - name: Jonathan Shimwell orcid: 0000-0001-6909-0946 affiliation: 2 From 54caffe0d2de89a2f85c34b4c0dae067b9849fbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Delaporte-Mathurin?= <40028739+RemDelaporteMathurin@users.noreply.github.com> Date: Tue, 26 Nov 2024 17:13:04 -0500 Subject: [PATCH 13/25] Apply suggestions from code review Co-authored-by: Jonathan Shimwell --- paper.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/paper.md b/paper.md index 22f5b05..a8ea5d5 100644 --- a/paper.md +++ b/paper.md @@ -17,7 +17,7 @@ authors: affiliations: - name: Plasma Science and Fusion Center, MIT, USA index: 1 - - name: Proxima Fusion, Germanyu + - name: Proxima Fusion, Germany index: 2 date: 26 November 2024 @@ -27,13 +27,18 @@ bibliography: paper.bib # Summary -`openmc-plasma-source` is a Python-based package offering a collection of pre-built neutron sources designed for fusion applications using the Monte Carlo particle transport code OpenMC [@romano_openmc_2015]. By providing ready-to-use implementations for various neutron source configurations, such as tokamak, ring, and point sources, this package simplifies the often complex task of neutron source definition in fusion-related Monte Carlo simulations. These sources are parameterised to account for spatial distributions, plasma temperatures, and fusion fuel compositions, enabling realistic and computationally efficient neutron emission models. +`openmc-plasma-source` is a Python-based package offering a collection of pre-built neutron sources designed for fusion applications using the Monte Carlo particle transport code OpenMC [@romano_openmc_2015]. +By providing ready-to-use implementations for various neutron source configurations, such as tokamak, ring, and point sources, this package simplifies the often complex task of neutron source definition in fusion-related Monte Carlo simulations. +These sources are parameterised to account for spatial distributions, plasma temperatures, and fusion fuel compositions, enabling realistic and computationally efficient neutron emission models. -The package is designed to integrate seamlessly into OpenMC workflows, allowing users to define sources in just a few lines of Python code. It also supports advanced features like temperature-based neutron spectra and spatial source distributions, making it an invaluable tool for researchers simulating neutron behaviour in fusion devices. +The package is designed to integrate seamlessly into OpenMC workflows, allowing users to define sources in just a few lines of Python code. +It also supports advanced features like temperature-based neutron spectra and spatial source distributions, making it an invaluable tool for researchers simulating neutron behaviour in fusion devices. # Statement of need -Accurate modelling of neutron sources is critical for fusion energy research, underpinning tasks such as reactor shielding design, material testing, and tritium breeding analysis. In this context, OpenMC is a widely used tool for neutron transport simulations [@romano_openmc_2015]. However, creating realistic neutron source models for fusion applications can be a time-consuming and error-prone process, requiring detailed knowledge of plasma physics and significant coding effort. +Accurate modelling of neutron sources is critical for fusion energy research, underpinning tasks such as reactor shielding design, material testing, and tritium breeding analysis. +In this context, OpenMC is a widely used tool for neutron transport simulations [@romano_openmc_2015]. +However, creating realistic neutron source models for fusion applications can be a time-consuming and error-prone process, requiring detailed knowledge of plasma physics and significant coding effort. Traditionally, researchers have implemented their own custom neutron source definitions, which often results in redundant work and inconsistencies between studies. For example, spatial distributions, temperature effects, and fuel compositions must be correctly parameterised to ensure the fidelity of the simulations. The lack of standardised tools for these tasks introduces variability and potential errors in simulations. From 94b52fff25dd6346e1a1d7990ab5e5157f100dd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Delaporte-Mathurin?= <40028739+RemDelaporteMathurin@users.noreply.github.com> Date: Tue, 26 Nov 2024 17:26:43 -0500 Subject: [PATCH 14/25] Update paper.md Co-authored-by: Jonathan Shimwell --- paper.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/paper.md b/paper.md index a8ea5d5..39e96ad 100644 --- a/paper.md +++ b/paper.md @@ -40,7 +40,9 @@ Accurate modelling of neutron sources is critical for fusion energy research, un In this context, OpenMC is a widely used tool for neutron transport simulations [@romano_openmc_2015]. However, creating realistic neutron source models for fusion applications can be a time-consuming and error-prone process, requiring detailed knowledge of plasma physics and significant coding effort. -Traditionally, researchers have implemented their own custom neutron source definitions, which often results in redundant work and inconsistencies between studies. For example, spatial distributions, temperature effects, and fuel compositions must be correctly parameterised to ensure the fidelity of the simulations. The lack of standardised tools for these tasks introduces variability and potential errors in simulations. +Traditionally, researchers have implemented their own custom neutron source definitions, which often results in redundant work and inconsistencies between studies. +For example, spatial distributions, temperature effects, and fuel compositions must be correctly parameterised to ensure the fidelity of the simulations. +The lack of standardised tools for these tasks introduces variability, potential errors in simulations and a lack of reproducibility. `openmc-plasma-source` addresses these challenges by providing a standardised and easy-to-use interface for defining neutron sources in OpenMC. The package implements the equations for neutron distributions based on established models, such as those described in @fausser_tokamak_2012. By automating the setup process and including extensive documentation and examples, it reduces barriers to entry for researchers new to OpenMC or neutron source modelling. From a60dbfd65b1ca399ce98a1d8039f8e1e5da01b06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Delaporte-Mathurin?= <40028739+RemDelaporteMathurin@users.noreply.github.com> Date: Tue, 26 Nov 2024 20:20:15 -0500 Subject: [PATCH 15/25] Update paper.md Co-authored-by: Jonathan Shimwell --- paper.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/paper.md b/paper.md index 39e96ad..764d09f 100644 --- a/paper.md +++ b/paper.md @@ -29,7 +29,12 @@ bibliography: paper.bib `openmc-plasma-source` is a Python-based package offering a collection of pre-built neutron sources designed for fusion applications using the Monte Carlo particle transport code OpenMC [@romano_openmc_2015]. By providing ready-to-use implementations for various neutron source configurations, such as tokamak, ring, and point sources, this package simplifies the often complex task of neutron source definition in fusion-related Monte Carlo simulations. -These sources are parameterised to account for spatial distributions, plasma temperatures, and fusion fuel compositions, enabling realistic and computationally efficient neutron emission models. +These sources are parameterised to account for spatial distributions, plasma temperatures, plasma pressure, and fusion fuel compositions. +DT (deuterium, tritium) plasmas with any ratio of D and T are supported including pure DD and pure TT plasmas. +The package computes spatial distributions of temperature and density and accounts for them when computing the spatially distributed reactivity for the differentfusion reactions availablein the fuel composition. +The temperature, density and fuel composition are accounted for when producing the neutron energy distribution which also varies spatially. +energy distributions of neutron sources. +The approach take is also computationally efficient by making use of rotational symmetry to reduce the size of the source definition. The package is designed to integrate seamlessly into OpenMC workflows, allowing users to define sources in just a few lines of Python code. It also supports advanced features like temperature-based neutron spectra and spatial source distributions, making it an invaluable tool for researchers simulating neutron behaviour in fusion devices. From b16b2f36c1a54eafd95e0fc75eeade22d039dfdf Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 27 Nov 2024 11:39:33 -0500 Subject: [PATCH 16/25] cite NeSST package --- paper.bib | 9 +++++++++ paper.md | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/paper.bib b/paper.bib index 715f0fc..6ea442b 100644 --- a/paper.bib +++ b/paper.bib @@ -36,3 +36,12 @@ @article{romano_openmc_2015 pages = {90--97}, file = {ScienceDirect Snapshot:C\:\\Users\\remidm\\Zotero\\storage\\7Z6DVQXL\\S030645491400379X.html:text/html}, } + +@software{Crilly_NESST_-_Neutron_2024, + author = {Crilly, Aidan}, + month = apr, + title = {{NESST - Neutron Scattered Spectra Tool, ICF primary and scattered neutron spectroscopy analysis code}}, + url = {https://github.com/aidancrilly/NeSST}, + version = {1.0.0}, + year = {2024} +} \ No newline at end of file diff --git a/paper.md b/paper.md index 764d09f..23fe578 100644 --- a/paper.md +++ b/paper.md @@ -49,7 +49,7 @@ Traditionally, researchers have implemented their own custom neutron source defi For example, spatial distributions, temperature effects, and fuel compositions must be correctly parameterised to ensure the fidelity of the simulations. The lack of standardised tools for these tasks introduces variability, potential errors in simulations and a lack of reproducibility. -`openmc-plasma-source` addresses these challenges by providing a standardised and easy-to-use interface for defining neutron sources in OpenMC. The package implements the equations for neutron distributions based on established models, such as those described in @fausser_tokamak_2012. By automating the setup process and including extensive documentation and examples, it reduces barriers to entry for researchers new to OpenMC or neutron source modelling. +`openmc-plasma-source` addresses these challenges by providing a standardised and easy-to-use interface for defining neutron sources in OpenMC. The package implements the equations for neutron distributions based on established models, such as those described in @fausser_tokamak_2012 and fusion energy spectra from the NeSST tool @Crilly_NESST_-_Neutron_2024. By automating the setup process and including extensive documentation and examples, it reduces barriers to entry for researchers new to OpenMC or neutron source modelling. With pre-built configurations for tokamak, ring, and point sources, `openmc-plasma-source` is suitable for a wide range of applications. For example: From 8972fabceb2ddf2a246aa02308e45d6130f36386 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 27 Nov 2024 11:48:21 -0500 Subject: [PATCH 17/25] separate sections --- paper.md | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/paper.md b/paper.md index 23fe578..3e6257a 100644 --- a/paper.md +++ b/paper.md @@ -51,18 +51,25 @@ The lack of standardised tools for these tasks introduces variability, potential `openmc-plasma-source` addresses these challenges by providing a standardised and easy-to-use interface for defining neutron sources in OpenMC. The package implements the equations for neutron distributions based on established models, such as those described in @fausser_tokamak_2012 and fusion energy spectra from the NeSST tool @Crilly_NESST_-_Neutron_2024. By automating the setup process and including extensive documentation and examples, it reduces barriers to entry for researchers new to OpenMC or neutron source modelling. +# Pre-Built Configurations + With pre-built configurations for tokamak, ring, and point sources, `openmc-plasma-source` is suitable for a wide range of applications. For example: -- The **tokamak source** models realistic spatial and temperature distributions, optimised for computational efficiency through the use of ring sources. +- The **tokamak source** models realistic spatial and temperature distributions, optimised for computational efficiency through the use of ring sources (see \autoref{fig:tokamak_source} and \autroef{3d_tokamak_source}). - The **ring source** offers a simplified yet effective representation for cylindrical geometries. -- The **point source** is ideal for preliminary studies or cases requiring a concentrated neutron emission found in inertial confinement fusion. +- The **point source** is ideal for preliminary studies or cases requiring a concentrated neutron emission found in inertial confinement fusion or sealed-tube neutron generators. +![Spatial neutron source density distributions of a tokamak source.\label{fig:tokamak_source}](https://user-images.githubusercontent.com/40028739/135100022-330aa51c-e2a2-401c-9738-90f3e99c84d4.png){ width=50% } -The package’s open-source nature and community-driven development further ensure its adaptability and relevance to the evolving needs of the fusion research community. +![3D representation of a tokamak source.\label{fig:3d_tokamak_source}](3d_tokamak_source.png){ width=50% } + +# Custom Energy Spectra -![Spatial neutron source density distributions of a tokamak source.\label{fig:tokamak_source}](https://user-images.githubusercontent.com/40028739/135100022-330aa51c-e2a2-401c-9738-90f3e99c84d4.png) +`openmc-plasma-source` allows for customisation of neutron energy spectra based on varying fusion fuel compositions and spatial parameters. Users can define different fuel mixtures (e.g., DT, DD, TT) with associated spatially resolved temperature and density profiles, ensuring accurate and precise energy distributions. This flexibility is crucial for capturing the full range of neutron behaviours in complex fusion scenarios (see \autoref{fig:energy_spectra}). -![3D representation of a tokamak source.\label{fig:3d_tokamak_source}](3d_tokamak_source.png) +![Neutron Energy Spectra for different fusion fuels.\label{fig: energy spectra}]() + +The package’s open-source nature and community-driven development further ensure its adaptability and relevance to the evolving needs of the fusion research community. # Example usage From be1dfe20934e6e55aa504eeee2ba7f80807ed525 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 27 Nov 2024 11:51:37 -0500 Subject: [PATCH 18/25] added Figure --- energy_spectra.svg | 5531 ++++++++++++++++++++++++++++++++++++++++++++ paper.md | 2 +- 2 files changed, 5532 insertions(+), 1 deletion(-) create mode 100644 energy_spectra.svg diff --git a/energy_spectra.svg b/energy_spectra.svg new file mode 100644 index 0000000..a0f9b8c --- /dev/null +++ b/energy_spectra.svg @@ -0,0 +1,5531 @@ + + + + + + + + 2024-11-27T11:50:40.619379 + image/svg+xml + + + Matplotlib v3.9.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/paper.md b/paper.md index 3e6257a..e45bd45 100644 --- a/paper.md +++ b/paper.md @@ -67,7 +67,7 @@ With pre-built configurations for tokamak, ring, and point sources, `openmc-plas `openmc-plasma-source` allows for customisation of neutron energy spectra based on varying fusion fuel compositions and spatial parameters. Users can define different fuel mixtures (e.g., DT, DD, TT) with associated spatially resolved temperature and density profiles, ensuring accurate and precise energy distributions. This flexibility is crucial for capturing the full range of neutron behaviours in complex fusion scenarios (see \autoref{fig:energy_spectra}). -![Neutron Energy Spectra for different fusion fuels.\label{fig: energy spectra}]() +![Neutron Energy Spectra for different fusion fuels.\label{fig: energy spectra}](energy_spectra.svg) The package’s open-source nature and community-driven development further ensure its adaptability and relevance to the evolving needs of the fusion research community. From 05b778ed1c170a4dbf1dc872ad10cdbaabb7ff55 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 27 Nov 2024 11:55:13 -0500 Subject: [PATCH 19/25] fixed figure refs --- paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paper.md b/paper.md index e45bd45..61d1e15 100644 --- a/paper.md +++ b/paper.md @@ -55,7 +55,7 @@ The lack of standardised tools for these tasks introduces variability, potential With pre-built configurations for tokamak, ring, and point sources, `openmc-plasma-source` is suitable for a wide range of applications. For example: -- The **tokamak source** models realistic spatial and temperature distributions, optimised for computational efficiency through the use of ring sources (see \autoref{fig:tokamak_source} and \autroef{3d_tokamak_source}). +- The **tokamak source** models realistic spatial and temperature distributions, optimised for computational efficiency through the use of ring sources (see \autoref{fig:tokamak_source} and \autoref{fig:3d_tokamak_source}). - The **ring source** offers a simplified yet effective representation for cylindrical geometries. - The **point source** is ideal for preliminary studies or cases requiring a concentrated neutron emission found in inertial confinement fusion or sealed-tube neutron generators. From d251f0a2f2fa33f6ab5e9add096b3757df49c063 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 27 Nov 2024 11:56:12 -0500 Subject: [PATCH 20/25] line breaks --- paper.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/paper.md b/paper.md index 61d1e15..01e6e9b 100644 --- a/paper.md +++ b/paper.md @@ -49,7 +49,9 @@ Traditionally, researchers have implemented their own custom neutron source defi For example, spatial distributions, temperature effects, and fuel compositions must be correctly parameterised to ensure the fidelity of the simulations. The lack of standardised tools for these tasks introduces variability, potential errors in simulations and a lack of reproducibility. -`openmc-plasma-source` addresses these challenges by providing a standardised and easy-to-use interface for defining neutron sources in OpenMC. The package implements the equations for neutron distributions based on established models, such as those described in @fausser_tokamak_2012 and fusion energy spectra from the NeSST tool @Crilly_NESST_-_Neutron_2024. By automating the setup process and including extensive documentation and examples, it reduces barriers to entry for researchers new to OpenMC or neutron source modelling. +`openmc-plasma-source` addresses these challenges by providing a standardised and easy-to-use interface for defining neutron sources in OpenMC. +The package implements the equations for neutron distributions based on established models, such as those described in @fausser_tokamak_2012 and fusion energy spectra from the NeSST tool [@Crilly_NESST_-_Neutron_2024]. +By automating the setup process and including extensive documentation and examples, it reduces barriers to entry for researchers new to OpenMC or neutron source modelling. # Pre-Built Configurations @@ -65,7 +67,9 @@ With pre-built configurations for tokamak, ring, and point sources, `openmc-plas # Custom Energy Spectra -`openmc-plasma-source` allows for customisation of neutron energy spectra based on varying fusion fuel compositions and spatial parameters. Users can define different fuel mixtures (e.g., DT, DD, TT) with associated spatially resolved temperature and density profiles, ensuring accurate and precise energy distributions. This flexibility is crucial for capturing the full range of neutron behaviours in complex fusion scenarios (see \autoref{fig:energy_spectra}). +`openmc-plasma-source` allows for customisation of neutron energy spectra based on varying fusion fuel compositions and spatial parameters. +Users can define different fuel mixtures (e.g., DT, DD, TT) with associated spatially resolved temperature and density profiles, ensuring accurate and precise energy distributions. +This flexibility is crucial for capturing the full range of neutron behaviours in complex fusion scenarios (see \autoref{fig:energy_spectra}). ![Neutron Energy Spectra for different fusion fuels.\label{fig: energy spectra}](energy_spectra.svg) From 2b1610f2bec6c355c80a4ca2de1132e925745ddf Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 27 Nov 2024 11:58:01 -0500 Subject: [PATCH 21/25] fixed space --- paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paper.md b/paper.md index 01e6e9b..69f036b 100644 --- a/paper.md +++ b/paper.md @@ -71,7 +71,7 @@ With pre-built configurations for tokamak, ring, and point sources, `openmc-plas Users can define different fuel mixtures (e.g., DT, DD, TT) with associated spatially resolved temperature and density profiles, ensuring accurate and precise energy distributions. This flexibility is crucial for capturing the full range of neutron behaviours in complex fusion scenarios (see \autoref{fig:energy_spectra}). -![Neutron Energy Spectra for different fusion fuels.\label{fig: energy spectra}](energy_spectra.svg) +![Neutron Energy Spectra for different fusion fuels.\label{fig:energy spectra}](energy_spectra.svg) The package’s open-source nature and community-driven development further ensure its adaptability and relevance to the evolving needs of the fusion research community. From 9d92c23245138d6c660623e60c7974bdc4ec276d Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 27 Nov 2024 12:13:52 -0500 Subject: [PATCH 22/25] fixed reference again --- paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paper.md b/paper.md index 69f036b..0afe076 100644 --- a/paper.md +++ b/paper.md @@ -71,7 +71,7 @@ With pre-built configurations for tokamak, ring, and point sources, `openmc-plas Users can define different fuel mixtures (e.g., DT, DD, TT) with associated spatially resolved temperature and density profiles, ensuring accurate and precise energy distributions. This flexibility is crucial for capturing the full range of neutron behaviours in complex fusion scenarios (see \autoref{fig:energy_spectra}). -![Neutron Energy Spectra for different fusion fuels.\label{fig:energy spectra}](energy_spectra.svg) +![Neutron Energy Spectra for different fusion fuels.\label{fig:energy_spectra}](energy_spectra.svg) The package’s open-source nature and community-driven development further ensure its adaptability and relevance to the evolving needs of the fusion research community. From e56a919fe3e21c2b26db8b7052123bc0efd88c81 Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Thu, 28 Nov 2024 21:05:29 +0100 Subject: [PATCH 23/25] [skip ci] typo fix --- paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paper.md b/paper.md index 0afe076..6c302a9 100644 --- a/paper.md +++ b/paper.md @@ -31,7 +31,7 @@ bibliography: paper.bib By providing ready-to-use implementations for various neutron source configurations, such as tokamak, ring, and point sources, this package simplifies the often complex task of neutron source definition in fusion-related Monte Carlo simulations. These sources are parameterised to account for spatial distributions, plasma temperatures, plasma pressure, and fusion fuel compositions. DT (deuterium, tritium) plasmas with any ratio of D and T are supported including pure DD and pure TT plasmas. -The package computes spatial distributions of temperature and density and accounts for them when computing the spatially distributed reactivity for the differentfusion reactions availablein the fuel composition. +The package computes spatial distributions of temperature and density and accounts for them when computing the spatially distributed reactivity for the different fusion reactions possible with the fuel composition. The temperature, density and fuel composition are accounted for when producing the neutron energy distribution which also varies spatially. energy distributions of neutron sources. The approach take is also computationally efficient by making use of rotational symmetry to reduce the size of the source definition. From 469cc3f65ec6a8795b0d8f487c1e61fd7ed65d0b Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Thu, 28 Nov 2024 21:05:43 +0100 Subject: [PATCH 24/25] [skip ci] typo fixUpdate paper.md --- paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paper.md b/paper.md index 6c302a9..9394f2f 100644 --- a/paper.md +++ b/paper.md @@ -34,7 +34,7 @@ DT (deuterium, tritium) plasmas with any ratio of D and T are supported includin The package computes spatial distributions of temperature and density and accounts for them when computing the spatially distributed reactivity for the different fusion reactions possible with the fuel composition. The temperature, density and fuel composition are accounted for when producing the neutron energy distribution which also varies spatially. energy distributions of neutron sources. -The approach take is also computationally efficient by making use of rotational symmetry to reduce the size of the source definition. +The approach taken is also computationally efficient by making use of rotational symmetry to reduce the size of the source definition. The package is designed to integrate seamlessly into OpenMC workflows, allowing users to define sources in just a few lines of Python code. It also supports advanced features like temperature-based neutron spectra and spatial source distributions, making it an invaluable tool for researchers simulating neutron behaviour in fusion devices. From 612f8fc19be1da9e75cc6c35a643e83d79a9c4b3 Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Thu, 28 Nov 2024 21:05:54 +0100 Subject: [PATCH 25/25] [skip ci] typo fix --- paper.md | 1 - 1 file changed, 1 deletion(-) diff --git a/paper.md b/paper.md index 9394f2f..5301692 100644 --- a/paper.md +++ b/paper.md @@ -33,7 +33,6 @@ These sources are parameterised to account for spatial distributions, plasma tem DT (deuterium, tritium) plasmas with any ratio of D and T are supported including pure DD and pure TT plasmas. The package computes spatial distributions of temperature and density and accounts for them when computing the spatially distributed reactivity for the different fusion reactions possible with the fuel composition. The temperature, density and fuel composition are accounted for when producing the neutron energy distribution which also varies spatially. -energy distributions of neutron sources. The approach taken is also computationally efficient by making use of rotational symmetry to reduce the size of the source definition. The package is designed to integrate seamlessly into OpenMC workflows, allowing users to define sources in just a few lines of Python code.