awslabs / palace

3D finite element solver for computational electromagnetics
https://awslabs.github.io/palace/dev
Apache License 2.0
224 stars 50 forks source link

Linear form assembly with libCEED #252

Open sebastiangrimberg opened 1 month ago

sebastiangrimberg commented 1 month ago

Similar to the BilinearForm class which uses libCEED under the hood but mimics mfem::BilinearForm, we can add a palace::LinearForm to replace our usage of mfem::LinearForm and dramatically accelerate linear form assembly (for RHS vectors as well as for postprocessing operations).

Perhaps a related improvement here would be to add an GetValue/GetVectorValue interface to palace::GridFunction which can be used to evaluate the value of the grid function at a point using the libCEED basis and pre-computed Jacobian matrices. This would speed up postprocessing a lot, including writing of fields to disk.