Implementing a Restricted Function Space Class in Firedrake
<|reference_start|>Implementing a Restricted Function Space Class in Firedrake: The implementation process of a $\texttt{RestrictedFunctionSpace}$ class in Firedrake, a Python library which numerically solves partial differential equations through the use of the finite element method, is documented. This includes an introduction to the current $\texttt{FunctionSpace}$ class in Firedrake, and the key features that it has. With the current $\texttt{FunctionSpace}$ class, the limitations of the capabilities of the solvers in Firedrake when imposing Dirichlet boundary conditions are explored, as well as what the $\texttt{RestrictedFunctionSpace}$ class does differently to remove these issues. These will be considered in both a mathematical way, and in the code as an abstraction of the mathematical ideas presented. Finally, the benefits to the user of the $\texttt{RestrictedFunctionSpace}$ class are considered, and demonstrated through tests and comparisons. This leads to the conclusion that in particular, the eigensolver in Firedrake is improved through the use of the $\texttt{RestrictedFunctionSpace}$, through the removal of eigenvalues associated with the Dirichlet boundary conditions for a system.<|reference_end|>
@article{rothwell2024implementing,
    title={Implementing a Restricted Function Space Class in Firedrake},
    author={Emma Rothwell},
    journal={arXiv preprint arXiv:2408.05217},
    year={2024},
    archivePrefix={arXiv},
    eprint={2408.05217},
    primaryClass={cs.MS cs.NA math.NA}
}