/usr/lib/python2.7/dist-packages/FIAT/makelags.py is in python-fiat 1.3.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | # Copyright (C) 2008-2012 Robert C. Kirby (Texas Tech University)
#
# This file is part of FIAT.
#
# FIAT is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# FIAT is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with FIAT. If not, see <http://www.gnu.org/licenses/>.
from . import lagrange
from . import reference_element
import string
import numpy
lagclass = \
"""class Lagrange%s%d: public FiniteElement {
public:
Lagrange%s%d():FiniteElement(%d,%d,%d,%d,%d,%s) {}
virtual ~Lagrange%s%d(){}
};"""
def array_to_C_string( u ):
x = [ str( a ) for a in u ]
return "{ %s }" % ( string.join( x , " , " ) )
def matrix_to_array( mat , mat_name ):
(num_rows,num_cols) = mat.shape
# get C array of data
u = numpy.ravel( numpy.transpose( mat ) )
array_name = mat_name
return \
"""static double %s[] = %s;""" % ( array_name , \
array_to_C_string( u ) )
T = reference_element.DefaultTriangle()
shape = "Triangle"
for i in range(3,4):
L = lagrange.Lagrange(T,i)
nb = L.get_nodal_basis()
vdm = nb.get_coeffs()
array_name="Lagrange%s%dCoeffs"%(shape,i)
print(matrix_to_array( vdm , array_name ))
print(lagclass % (shape,i,shape,i,\
nb.get_degree(), \
nb.get_embedded_degree(), \
2,\
nb.get_num_members() , \
nb.get_num_members() , \
array_name,shape,i))
|