Abstract
We present a 50-line MATLAB implementation of the lowest order virtual element method for the two-dimensional Poisson problem on general polygonal meshes. The matrix formulation of the method is discussed, along with the structure of the overall algorithm for computing with a virtual element method. The purpose of this software is primarily educational, to demonstrate how the key components of the method can be translated into code.
Article PDF
References
Ahmad, B., Alsaedi, A., Brezzi, F., Marini, L.D., Russo, A.: Equivalent projectors for virtual element methods. Computers & Mathematics with Applications 66(3), 376–391 (2013)
Alberty, J., Carstensen, C., Funken, S.A.: Remarks around 50 lines of Matlab: short finite element implementation. Numer Algorithms 20(2-3), 117–137 (1999)
Antonietti, P.F., Beirão da Veiga, L., Mora, D., Verani, M.: A stream virtual element formulation of the Stokes problem on polygonal meshes. SIAM J. Numer. Anal. 52(1), 386–404 (2014)
Ayuso de Dios, B., Lipnikov, K., Manzini, G.: The nonconforming virtual element method. ESAIM: M2AN 50(3), 879–904 (2016)
Bahriawati, C., Carstensen, C.: Three MATLAB implementations of the lowest-order Raviart-Thomas MFEM with a posteriori error control. Comput. Methods Appl. Math. 5(4), 333–361 (2005). (electronic)
Beirão da Veiga, L., Brezzi, F., Cangiani, A., Manzini, G., Marini, L.D., Russo, A.: Basic principles of virtual element methods. Math. Models Methods Appl. Sci. 23(1), 199–214 (2013)
Beirão da Veiga, L., Brezzi, F., Marini, L.D., Russo, A.: The hitchhiker’s guide to the virtual element method. Math. Models Methods Appl. Sci. 24(8), 1541–1573 (2014)
Beirão da Veiga, L., Brezzi, F., Marini, L.D., Russo, A.: Virtual element method for general second-order elliptic problems on polygonal meshes. Math. Models Methods Appl. Sci. 26(4), 729–750 (2016)
Beirão da Veiga, L., Lovadina, C., Russo, A.: Stability Analysis for the Virtual Element Method. arXiv (2016)
Beirão da Veiga, L., Manzini, G.: A virtual element method with arbitrary regularity. IMA J. Numer. Anal. 34(2), 759–781 (2014)
Brezzi, F., Falk, R.S., Marini, L.D.: Basic principles of mixed virtual element methods. ESIAM: M2AN 48(4), 1227–1240 (2014)
Cangiani, A., Georgoulis, E.H., Pryer, T., Sutton, O.J.: A posteriori error estimates for the virtual element method. arXiv (2016)
Cangiani, A., Manzini, G., Russo, A., Sukumar, N.: Hourglass stabilization and the virtual element method. Int. J. Numer. Meth. Engng. 102(3-4), 404–436 (2015)
Cangiani, A., Manzini, G., Sutton, O.J.: Conforming and nonconforming virtual element methods for elliptic problems. IMA J. Numer. Anal. (2016)
Gain, A.L., Talischi, C., Paulino, G.H.: On the virtual element method for three-dimensional linear elasticity problems on arbitrary polyhedral meshes. Comput. Methods Appl. Mech. Engrg. 282, 132–160 (2014)
Hecht, F.: New development in FreeFem++. J. Numer. Math. 20, 3-4, 251–265 (2012)
Logg, A., Mardal, K.-A., Wells, G.N., et al.: Automated solution of differential equations by the finite element method. Springer (2012)
Manzini, G., Russo, A., Sukumar, N.: New perspectives on polygonal and polyhedral finite element methods. Math. Models Methods Appl. Sci. 24(8), 1665–1699 (2014)
Mousavi, S.E., Sukumar, N.: Numerical integration of polynomials and discontinuous functions on irregular convex polygons and polyhedrons. Comput. Mech. 47(5), 535–554 (2011)
Mousavi, S.E., Xiao, H., Sukumar, N.: Generalized Gaussian quadrature rules on arbitrary polygons. Int. J. Numer. Meth. Engng. 82(1), 99–113 (2010)
Perugia, I., Pietra, P., Russo, A.: A Plane Wave Virtual Element Method for the Helmholtz Problem. ESIAM: M2AN 50(3), 783–808 (2016)
Rjasanow, S., Weißer, S.: Higher order BEM-based FEM on polygonal meshes. SIAM J. Numer. Anal. 50(5), 2357–2378 (2012)
Sigmund, O.A.: 99 line topology optimization code written in Matlab. Struct. Multidiscip. Optim. 21(2), 120–127 (2001)
Sommariva, A., Vianello, M.: Product Gauss cubature over polygons based on Green’s integration formula. BIT Numer. Math. 47(2), 441–453 (2007)
Strouboulis, T., Babuška, I., Copps, K.: The design and analysis of the generalized finite element method. Comput. Methods Appl. Mech. Engrg. 181(1-3), 43–69 (2000)
Sudhakar, Y., Moitinho de Almeida, J.P., Wall, W.A.: An accurate, robust, and easy-to-implement method for integration over arbitrary polyhedra: application to embedded interface methods. J. Comput. Phys 273, 393–415 (2014)
Sukumar, N., Tabarraei, A.: Conforming polygonal finite elements. Int. J. Numer. Meth. Engng. 61(12), 2045–2066 (2004)
Talischi, C., Paulino, G.H., Pereira, A., Menezes, I.F.M.: PolyMesher: a general-purpose mesh generator for polygonal elements written in Matlab. Struct. Multidiscip. Optim. 45(3), 309–328 (2012)
Taylor, R.: FEAP — a finite element analysis program. University of California at Berkeley (2013). Version 8.4
Vacca, G., Beirão da Veiga, L.: Virtual element methods for parabolic problems on polygonal meshes. Numer. Methods Partial Differential Equations 31 (6), 2110–2134 (2015)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.
About this article
Cite this article
Sutton, O.J. The virtual element method in 50 lines of MATLAB. Numer Algor 75, 1141–1159 (2017). https://doi.org/10.1007/s11075-016-0235-3
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11075-016-0235-3