It provides a finite element method library which improves the reliability
of a program using the finite element method as a library, and avoids
calculation errors and an increase in convergence time due to programming
errors. To this end, a library that describes a program process based on
the finite element method is characterized in that a vector of a vector
space spanned by basis functions of the finite element method, and a dual
vector of a dual vector space defined by a metric derived from an inner
product which is determined by the square integrations of the basis
functions, are defined as different abstract data types.