1. A finite element method library that describes a program process based on a finite element method, wherein 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 square integrations of the basis functions, are defined as different abstract data types.