
import numpy as np

class FreeFemData:
    def __init__(self,name):
        self.name = name
        with open(name+".msh") as f:
            lines = f.readlines()
        line0 = lines[0].rstrip()
        data = line0.split(" ")
        self.nb_sommets  = int(data[0])
        self.nb_triangles = int(data[1])
        self.x_array = np.zeros(self.nb_sommets)
        self.y_array = np.zeros(self.nb_sommets)
        self.z_array = np.zeros(self.nb_sommets)
        j = 1
        for i in range(0,self.nb_sommets):
            line = lines[j].rstrip()
            data = line.split(" ")
            j += 1
            self.x_array[i] = float(data[0])
            self.y_array[i]= float(data[1])
            self.z_array[i] = float(data[2])
        self.triangles = np.zeros((self.nb_triangles,3),dtype=np.int64)
        for i in range(self.nb_triangles):
            line = lines[j].rstrip()
            data = line.split(" ")
            j += 1
            self.triangles[i,0] = int(data[0])-1
            self.triangles[i,1] = int(data[1])-1
            self.triangles[i,2] = int(data[2])-1

    def readData(self,n):
        self.data = np.zeros((n,self.nb_sommets))
        with open('%s_data.txt'%self.name) as f:
            lines = f.readlines()
        for i in range(0,self.nb_sommets):
            line = lines[i].rstrip()
            data = line.split(" ")
            for k in range(n):
                self.data[k,i] = float(data[k])
        return self.data
						 