{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,11,1]],"date-time":"2026-11-01T11:55:41Z","timestamp":1793534141487,"version":"4.5.0"},"reference-count":39,"publisher":"AIP Publishing","issue":"6","content-domain":{"domain":["pubs.aip.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[1998,11,1]]},"abstract":"<jats:p>In this article the principles of the field operation and manipulation (FOAM) C++ class library for continuum mechanics are outlined. Our intention is to make it as easy as possible to develop reliable and efficient computational continuum-mechanics codes: this is achieved by making the top-level syntax of the code as close as possible to conventional mathematical notation for tensors and partial differential equations. Object-orientation techniques enable the creation of data types that closely mimic those of continuum mechanics, and the operator overloading possible in C++ allows normal mathematical symbols to be used for the basic operations. As an example, the implementation of various types of turbulence modeling in a FOAM computational-fluid-dynamics code is discussed, and calculations performed on a standard test case, that of flow around a square prism, are presented. To demonstrate the flexibility of the FOAM library, codes for solving structures and magnetohydrodynamics are also presented with appropriate test case results given. \u00a9 1998 American Institute of Physics.<\/jats:p>","DOI":"10.1063\/1.168744","type":"journal-article","created":{"date-parts":[[2002,7,26]],"date-time":"2002-07-26T08:02:25Z","timestamp":1027670545000},"page":"620-631","update-policy":"https:\/\/doi.org\/10.1063\/aip-crossmark-policy-page","source":"Crossref","is-referenced-by-count":4950,"title":["A tensorial approach to computational continuum mechanics using object-oriented techniques"],"prefix":"10.1063","volume":"12","author":[{"given":"H. G.","family":"Weller","sequence":"first","affiliation":[{"name":"Department of Mechanical Engineering, Imperial College, London\u2009SW7\u20092BX, United Kingdom"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"G.","family":"Tabor","sequence":"additional","affiliation":[{"name":"Department of Mechanical Engineering, Imperial College, London\u2009SW7\u20092BX, United Kingdom"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"H.","family":"Jasak","sequence":"additional","affiliation":[{"name":"Computational Dynamics Limited, London\u2009W10\u20096RA, United Kingdom"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"C.","family":"Fureby","sequence":"additional","affiliation":[{"name":"Department of Weapons and Protection, National Defense Research Establishment (FOA), S-17290\u2009Stockholm, Sweden"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"317","reference":[{"key":"2023071202435975200_r1"},{"key":"2023071202435975200_r2"},{"key":"2023071202435975200_r3"},{"key":"2023071202435975200_r4","doi-asserted-by":"crossref","first-page":"355","DOI":"10.1016\/0045-7949(90)90261-Y","volume":"34","year":"1990","journal-title":"Comput. Struct."},{"key":"2023071202435975200_r5"},{"key":"2023071202435975200_r6"},{"key":"2023071202435975200_r7"},{"key":"2023071202435975200_r8"},{"key":"2023071202435975200_r8a"},{"key":"2023071202435975200_r9","doi-asserted-by":"crossref","first-page":"165","DOI":"10.1016\/0045-7825(93)90159-U","volume":"108","year":"1993","journal-title":"Comput. Methods Appl. Mech. Eng."},{"key":"2023071202435975200_r10","doi-asserted-by":"crossref","first-page":"439","DOI":"10.1016\/S0168-9274(96)00044-X","volume":"21","year":"1996","journal-title":"Appl. Numer. Math."},{"key":"2023071202435975200_r11","doi-asserted-by":"crossref","first-page":"291","DOI":"10.1016\/0045-7825(92)90180-R","volume":"98","year":"1992","journal-title":"Comput. Methods Appl. Mech. Eng."},{"key":"2023071202435975200_r12","doi-asserted-by":"crossref","first-page":"32","DOI":"10.1145\/244768.244774","volume":"23","year":"1997","journal-title":"ACM Trans. Math. Softw."},{"key":"2023071202435975200_r13","doi-asserted-by":"crossref","first-page":"259","DOI":"10.1016\/0045-7825(96)01040-7","volume":"132","year":"1996","journal-title":"Comput. Methods Appl. Mech. Eng."},{"key":"2023071202435975200_r14","doi-asserted-by":"crossref","first-page":"277","DOI":"10.1016\/0045-7825(96)01041-9","volume":"132","year":"1996","journal-title":"Comput. Methods Appl. Mech. Eng."},{"key":"2023071202435975200_r15"},{"key":"2023071202435975200_r16"},{"key":"2023071202435975200_r17","doi-asserted-by":"crossref","first-page":"1416","DOI":"10.1063\/1.869254","volume":"9","year":"1997","journal-title":"Phys. Fluids"},{"key":"2023071202435975200_r18"},{"key":"2023071202435975200_r19","first-page":"409","volume":"29","year":"1952","journal-title":"J. Res."},{"key":"2023071202435975200_r20"},{"key":"2023071202435975200_r21","doi-asserted-by":"crossref","first-page":"631","DOI":"10.1137\/0913035","volume":"13","year":"1992","journal-title":"SIAM J. Comput."},{"key":"2023071202435975200_r22","doi-asserted-by":"crossref","first-page":"40","DOI":"10.1016\/0021-9991(86)90099-9","volume":"62","year":"1986","journal-title":"J. Comput. Phys."},{"key":"2023071202435975200_r23","doi-asserted-by":"crossref","first-page":"66","DOI":"10.1016\/0021-9991(86)90100-2","volume":"62","year":"1986","journal-title":"J. Comput. Phys."},{"key":"2023071202435975200_r24","doi-asserted-by":"crossref","first-page":"269","DOI":"10.1016\/0045-7825(74)90029-2","volume":"3","year":"1974","journal-title":"Comput. Methods Appl. Mech. Eng."},{"key":"2023071202435975200_r25","doi-asserted-by":"crossref","first-page":"1308","DOI":"10.2514\/3.9086","volume":"23","year":"1985","journal-title":"AIAA J."},{"key":"2023071202435975200_r26","doi-asserted-by":"crossref","first-page":"537","DOI":"10.1017\/S0022112075001814","article-title":"Progress in the development of a Reynolds-stress Turbulence Closure","volume":"68","year":"1975","journal-title":"J. Fluid Mech."},{"key":"2023071202435975200_r27","doi-asserted-by":"crossref","first-page":"99","DOI":"10.1175\/1520-0493(1963)091<0099:GCEWTP>2.3.CO;2","volume":"91","year":"1963","journal-title":"Mon. Weather Rev."},{"key":"2023071202435975200_r28","doi-asserted-by":"crossref","first-page":"376","DOI":"10.1016\/0021-9991(75)90093-5","volume":"18","year":"1975","journal-title":"J. Comput. Phys."},{"key":"2023071202435975200_r29","doi-asserted-by":"crossref","first-page":"2152","DOI":"10.1063\/1.865552","volume":"29","year":"1986","journal-title":"Phys. Fluids A"},{"key":"2023071202435975200_r30","first-page":"55","volume":"156","year":"1973","journal-title":"Trans. ASME, Ser. I: J. Fluids Eng."},{"key":"2023071202435975200_r31"},{"key":"2023071202435975200_r32","doi-asserted-by":"crossref","first-page":"155","DOI":"10.1017\/S0022112092001678","volume":"238","year":"1992","journal-title":"J. Fluid Mech."},{"key":"2023071202435975200_r33"},{"key":"2023071202435975200_r34","doi-asserted-by":"crossref","first-page":"298","DOI":"10.1007\/BF00538820","volume":"6","year":"1988","journal-title":"Exp. Fluids"},{"key":"2023071202435975200_r35","doi-asserted-by":"crossref","first-page":"491","DOI":"10.1017\/S0022112078001251","volume":"86","year":"1978","journal-title":"J. Fluid Mech."},{"key":"2023071202435975200_r36","doi-asserted-by":"crossref","first-page":"1510","DOI":"10.1063\/1.858424","volume":"4","year":"1992","journal-title":"Phys. Fluids A"},{"key":"2023071202435975200_r37","doi-asserted-by":"crossref","first-page":"3751","DOI":"10.1002\/nme.1620372110","volume":"37","year":"1994","journal-title":"Int. J. Numer. Methods Eng."},{"key":"2023071202435975200_r38","doi-asserted-by":"crossref","first-page":"235","DOI":"10.1016\/0045-7825(95)00800-G","volume":"125","year":"1995","journal-title":"Comput. Methods Appl. Mech. Eng."}],"container-title":["Computers in Physics"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/pubs.aip.org\/aip\/cip\/article-pdf\/12\/6\/620\/7865493\/620_1_online.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/pubs.aip.org\/aip\/cip\/article-pdf\/12\/6\/620\/7865493\/620_1_online.pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,7,11]],"date-time":"2023-07-11T22:44:32Z","timestamp":1689115472000},"score":1,"resource":{"primary":{"URL":"https:\/\/pubs.aip.org\/cip\/article\/12\/6\/620\/510187\/A-tensorial-approach-to-computational-continuum"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1998,11,1]]},"references-count":39,"journal-issue":{"issue":"6","published-print":{"date-parts":[[1998,11,1]]}},"URL":"https:\/\/doi.org\/10.1063\/1.168744","relation":{},"ISSN":["0894-1866"],"issn-type":[{"value":"0894-1866","type":"print"}],"subject":[],"published-other":{"date-parts":[[1998,11]]},"published":{"date-parts":[[1998,11,1]]}}}