PyCAC: The concurrent atomistic-continuum simulation environment
Source abstract
Abstract
We present a novel distributed-memory parallel implementation of the concurrent atomistic-continuum (CAC) method. Written mostly in Fortran 2008 and wrapped with a Python scripting interface, the CAC simulator in PyCAC runs in parallel using Message Passing Interface with a spatial decomposition algorithm. Built upon the underlying Fortran code, the Python interface provides a robust and versatile way for users to build system configurations, run CAC simulations, and analyze results. In this paper, following a brief introduction to the theoretical background of the CAC method, we discuss the serial algorithms of dynamic, quasistatic, and hybrid CAC, along with some programming techniques used in the code. We then illustrate the parallel algorithm, quantify the parallel scalability, and discuss some software specifications of PyCAC; more information can be found in the PyCAC user’s manual that is hosted onhttp://www.pycac.org.
Source: expertdata · Quality: candidate unverified · Source record ↗
Research context
OpenAlex topics: Microstructure and mechanical properties · Fusion materials and technologies · Ion-surface interactions and analysis
SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.
References (78)
Show source-provided references
1. 10.1209/epl/i1998-00536-910.1209/epl/i1998-00536-9 ↗
2. Tadmor · 2012
3. 10.1557/mrs.2016.16410.1557/mrs.2016.164 ↗
4. Xu · 2016
5. 10.1103/PhysRevE.94.05330910.1103/PhysRevE.94.053309 ↗
6. 10.1088/0965-0393/23/5/05500210.1088/0965-0393/23/5/055002 ↗
7. 10.1016/0263-7855(96)00018-510.1016/0263-7855(96)00018-5 ↗
8. 10.1007/s00419-014-0880-810.1007/s00419-014-0880-8 ↗
9. 10.1080/1478643050036259510.1080/14786430500362595 ↗
10. 10.1016/j.ijplas.2013.11.00410.1016/j.ijplas.2013.11.004 ↗
11. 10.1016/j.jcp.2017.10.03810.1016/j.jcp.2017.10.038 ↗
12. 10.1016/j.scriptamat.2016.06.01810.1016/j.scriptamat.2016.06.018 ↗
13. 10.1063/1.44811810.1063/1.448118 ↗
14. 10.1016/j.ijplas.2014.08.00210.1016/j.ijplas.2014.08.002 ↗
15. 10.1088/0965-0393/11/2/30510.1088/0965-0393/11/2/305 ↗
16. 10.1098/rspa.2014.075810.1098/rspa.2014.0758 ↗
17. 10.1016/S0378-4371(02)01922-210.1016/S0378-4371(02)01922-2 ↗
18. 10.1006/jcph.1995.103910.1006/jcph.1995.1039 ↗
19. 10.1063/1.284194110.1063/1.2841941 ↗
20. 10.1088/0965-0393/15/5/01110.1088/0965-0393/15/5/011 ↗
21. 10.1016/S0378-4371(02)01921-010.1016/S0378-4371(02)01921-0 ↗
22. Tuckerman · 2010
23. 10.1016/j.ijplas.2010.04.00710.1016/j.ijplas.2010.04.007 ↗
24. 10.1016/j.actamat.2011.11.00210.1016/j.actamat.2011.11.002 ↗
25. 10.1098/rspa.1924.008210.1098/rspa.1924.0082 ↗
26. 10.1063/1.310388710.1063/1.3103887 ↗
27. Schroeder · 2006
28. Gropp · 2014
29. 10.1103/PhysRevB.59.339310.1103/PhysRevB.59.3393 ↗
30. Allen · 1989
31. 10.1209/0295-5075/116/3400310.1209/0295-5075/116/34003 ↗
32. 10.1016/0009-2614(84)80098-610.1016/0009-2614(84)80098-6 ↗
33. 10.1007/s11837-017-2302-110.1007/s11837-017-2302-1 ↗
34. 10.1177/109434201038253410.1177/1094342010382534 ↗
35. 10.1016/j.ijplas.2010.02.00810.1016/j.ijplas.2010.02.008 ↗
36. 10.1038/3557710.1038/35577 ↗
37. 10.1016/j.cossms.2014.04.00110.1016/j.cossms.2014.04.001 ↗
38. 10.1016/S1359-0286(98)80020-X10.1016/S1359-0286(98)80020-X ↗
39. 10.1016/j.jmps.2010.11.00510.1016/j.jmps.2010.11.005 ↗
40. 10.1016/j.ijplas.2015.05.00710.1016/j.ijplas.2015.05.007 ↗
41. 10.1016/j.ijengsci.2011.03.01810.1016/j.ijengsci.2011.03.018 ↗
42. 10.1061/(ASCE)0733-9399(2009)135:3(149)10.1061/(ASCE)0733-9399(2009)135:3(149) ↗
43. Pearce · 2014 · 113
44. 10.1016/S0022-5096(01)00034-510.1016/S0022-5096(01)00034-5 ↗
45. 10.1103/PhysRevB.29.644310.1103/PhysRevB.29.6443 ↗
46. 10.1016/j.jmps.2008.09.01710.1016/j.jmps.2008.09.017 ↗
47. 10.1063/1.174778210.1063/1.1747782 ↗
48. 10.1016/j.ijsolstr.2016.03.03010.1016/j.ijsolstr.2016.03.030 ↗
49. 10.1016/j.actamat.2016.10.00510.1016/j.actamat.2016.10.005 ↗
50. 10.1016/j.actamat.2015.11.03710.1016/j.actamat.2015.11.037 ↗
51. 10.3390/cryst705012010.3390/cryst7050120 ↗
52. 10.1038/npjcompumats.2015.1610.1038/npjcompumats.2015.16 ↗
53. 10.1017/CBO978051153530710.1017/CBO9780511535307 ↗
54. 10.1016/j.scriptamat.2012.07.02610.1016/j.scriptamat.2012.07.026 ↗
55. Kittel · 2004
56. 10.1615/IntJMultCompEng.201300544210.1615/IntJMultCompEng.2013005442 ↗
57. 10.1063/1.44271610.1063/1.442716 ↗
58. 10.1016/j.actamat.2012.09.03210.1016/j.actamat.2012.09.032 ↗
59. 10.1016/S0894-9166(12)60023-810.1016/S0894-9166(12)60023-8 ↗
60. 10.1016/j.scriptamat.2017.04.03310.1016/j.scriptamat.2017.04.033 ↗
61. 10.1016/j.actamat.2017.06.05410.1016/j.actamat.2017.06.054 ↗
62. 10.1557/mrc.2017.11610.1557/mrc.2017.116 ↗
63. Chapra · 2009
64. 10.1103/PhysRevLett.97.17020110.1103/PhysRevLett.97.170201 ↗
65. Eidel · 2010 · 1
66. Tadmor · 2012
67. 10.1103/PhysRev.159.9810.1103/PhysRev.159.98 ↗
68. 10.1088/0965-0393/18/1/01501210.1088/0965-0393/18/1/015012 ↗
69. 10.1016/j.actamat.2010.10.01610.1016/j.actamat.2010.10.016 ↗
70. 10.1016/j.jmps.2011.12.00510.1016/j.jmps.2011.12.005 ↗
71. 10.1080/0141861960824300010.1080/01418619608243000 ↗
72. 10.1109/MCSE.2014.8010.1109/MCSE.2014.80 ↗
73. 10.1088/0965-0393/17/3/03500210.1088/0965-0393/17/3/035002 ↗
74. 10.1145/1465482.146556010.1145/1465482.1465560 ↗
75. 10.1016/j.commatsci.2017.11.05110.1016/j.commatsci.2017.11.051 ↗
76. 10.1016/j.jmps.2016.08.00210.1016/j.jmps.2016.08.002 ↗
77. 10.1016/j.jcp.2016.10.01010.1016/j.jcp.2016.10.010 ↗
78. 10.1080/14786435.2015.107617810.1080/14786435.2015.1076178 ↗