class neumannCondition: def __call__(self, x): return 0 fst = 3e3 snd = 5e3 trd = 3e3 if x < 1.0/3: return fst * x elif x < 2.0/3: return snd * (x - 1.0/3) + fst * 1.0/3 else: return trd * (x - 2.0/3) + (fst + snd) * 1.0/3 class dirichletCondition: def __call__(self, x): return 2 # return 0 fst = 3e-1 snd = 5e-1 trd = 3e-1 if x < 1.0/5: return fst elif x < 3.0/5: return snd else: return trd Functions = { 'neumannCondition' : neumannCondition(), 'dirichletCondition' : dirichletCondition() }