def main(): # some constants T = 5.0 dt = 0.1 dim = 2 n_ele = 41 N = 2 A_cond = 1e-11 A_pert = 5e-4 D_x = 1e-2 minField = 1e-10 abscissa_0 = [ Expression('0.6*floor(x[0]+0.5) + 0.4*(1.0-floor(x[0]+0.5))'), Expression('0.4*floor(x[0]+0.5) + 0.2*(1.0-floor(x[0]+0.5))') ] weight_0 = [ Expression('0.25*floor(x[0]+0.5) + 0.25*(1.0-floor(x[0]+0.5))'), Expression('0.25*floor(x[0]+0.5) + 0.25*(1.0-floor(x[0]+0.5))') ] # import pdb; pdb.set_trace() mod.main(T, dt, dim, n_ele, N, A_cond, A_pert, D_x, abscissa_0, weight_0, 'results_6_new')
def main(): # some constants T = 5.0 dt = 0.1 dim = 2 n_ele = 21 N = 2 A_cond = 1e-11 A_pert = 5e-3 D_x = 1e-3 minField = 1e-8 abscissa_0 = [ Expression('1.0+(floor(x[0]+0.5)+floor(x[1]+0.5))*1.0'), Expression('0.5+(floor(x[0]+0.5)+floor(x[1]+0.5))*0.5') ] weight_0 = [ Expression('minField+1.0*(floor(x[0]+0.5)+floor(x[1]+0.5))', minField=minField), Expression('minField+1.0*(floor(x[0]+0.5)+floor(x[1]+0.5))', minField=minField) ] # import pdb; pdb.set_trace() mod.main(T, dt, dim, n_ele, N, A_cond, A_pert, D_x, abscissa_0, weight_0, 'results_10')
def main(): # some constants T = 5.0 dt = 0.1 dim = 2 n_ele = 20 N = 2 A_cond = 1e-11 A_pert = 5e-4 D_x = 1e-3 G = 1.0 minField = 1e-8 abscissa_0 = [Expression("0.8", minField=minField), Expression("1.2", minField=minField)] weight_0 = [ Expression("0.5*floor(x[0]+0.5)" + "+ minField", minField=minField), Expression("0.5*floor(x[0]+0.5)" + "+ minField", minField=minField), ] # Create files for storing solution files_a = [File("results_3/weight_" + str(i) + ".pvd") for i in range(N)] files_b = [File("results_3/abscissa_" + str(i) + ".pvd") for i in range(N)] files_c = [File("results_3/weighted_abscissa_" + str(i) + ".pvd") for i in range(N)] files_d = [File("results_3/density.pvd"), File("results_3/mean.pvd"), File("results_3/std_dev.pvd")] files = files_a + files_b + files_c + files_d # import pdb; pdb.set_trace() mod.main(T, dt, dim, n_ele, N, A_cond, A_pert, D_x, abscissa_0, weight_0, files)
def main(): # some constants T = 5.0 dt = 0.1 dim = 2 n_ele = 20 N = 2 A_cond = 1e-11 A_pert = 5e-4 D_x = 1e-3 G = 1.0 minField = 1e-8 abscissa_0 = [Expression('0.8', minField=minField), Expression('1.2', minField=minField)] weight_0 = [Expression('0.5*floor(x[0]+0.5)' + '+ minField', minField=minField), Expression('0.5*floor(x[0]+0.5)' + '+ minField', minField=minField)] # Create files for storing solution files_a = [File("results_3/weight_" + str(i) + ".pvd") for i in range(N)] files_b = [File("results_3/abscissa_" + str(i) + ".pvd") for i in range(N)] files_c = [File("results_3/weighted_abscissa_" + str(i) + ".pvd") for i in range(N)] files_d = [File("results_3/density.pvd"), File("results_3/mean.pvd"), File("results_3/std_dev.pvd")] files = files_a + files_b + files_c + files_d # import pdb; pdb.set_trace() mod.main(T, dt, dim, n_ele, N, A_cond, A_pert, D_x, abscissa_0, weight_0, files)
def main(): # some constants T = 5.0 dt = 0.1 dim = 1 n_ele = 41 N = 2 A_cond = 1e-11 A_pert = 5e-4 D_x = 1e-3 G = 1.0 minField = 1e-10 abscissa_0 = [ Expression("0.6*floor(x[0]+0.5) + 0.4*(1.0-floor(x[0]+0.5))"), Expression("0.4*floor(x[0]+0.5) + 0.2*(1.0-floor(x[0]+0.5))"), ] weight_0 = [ Expression("0.25*floor(x[0]+0.5) + 0.25*(1.0-floor(x[0]+0.5))"), Expression("0.25*floor(x[0]+0.5) + 0.25*(1.0-floor(x[0]+0.5))"), ] # import pdb; pdb.set_trace() mod.main(T, dt, dim, n_ele, N, A_cond, A_pert, D_x, abscissa_0, weight_0)
def main(): # some constants T = 5.0 dt = 0.1 dim = 2 n_ele = 40 N = 2 A_cond = 1e-11 A_pert = 5e-4 D_x = 1e-3 G = 1.0 minField = 1e-10 abscissa_0 = [ Expression('1.2*floor(x[0]+0.45)' + '+ 1.0*(1-ceil(x[0]-0.45))'), Expression('1.0*floor(x[0]+0.45)' + '+ 0.8*(1-ceil(x[0]-0.45))') ] weight_0 = [ Expression('0.45*floor(x[0]+0.45)' + '+ 0.45*(1-ceil(x[0]-0.45))' + '+ minField', minField=minField), Expression('0.55*floor(x[0]+0.45)' + '+ 0.55*(1-ceil(x[0]-0.45))' + '+ minField', minField=minField) ] # Create files for storing solution files_a = [File("results_4/weight_" + str(i) + ".pvd") for i in range(N)] files_b = [File("results_4/abscissa_" + str(i) + ".pvd") for i in range(N)] files_c = [ File("results_4/weighted_abscissa_" + str(i) + ".pvd") for i in range(N) ] files_d = [File("results_4/weight_S_" + str(i) + ".pvd") for i in range(N)] files_e = [ File("results_4/weighted_abscissa_S_" + str(i) + ".pvd") for i in range(N) ] files_f = [ File("results_4/density.pvd"), File("results_4/mean.pvd"), File("results_4/std_dev.pvd"), File("results_4/skew.pvd") ] files = files_a + files_b + files_c + files_d + files_e + files_f # import pdb; pdb.set_trace() mod.main(T, dt, dim, n_ele, N, A_cond, A_pert, D_x, abscissa_0, weight_0, files)
def main(): # some constants T = 5.0 dt = 0.1 dim = 2 n_ele = 21 N = 2 A_cond = 1e-11 A_pert = 5e-3 D_x = 1e-3 minField = 1e-8 abscissa_0 = [Expression('1.0+(floor(x[0]+0.5)+floor(x[1]+0.5))*1.0'), Expression('0.5+(floor(x[0]+0.5)+floor(x[1]+0.5))*0.5')] weight_0 = [Expression('minField+1.0*(floor(x[0]+0.5)+floor(x[1]+0.5))', minField=minField), Expression('minField+1.0*(floor(x[0]+0.5)+floor(x[1]+0.5))', minField=minField)] # import pdb; pdb.set_trace() mod.main(T, dt, dim, n_ele, N, A_cond, A_pert, D_x, abscissa_0, weight_0, 'results_10')
def main(): # some constants T = 5.0 dt = 0.1 dim = 2 n_ele = 40 N = 2 A_cond = 1e-11 A_pert = 5e-4 D_x = 1e-3 G = 1.0 minField = 1e-10 abscissa_0 = [ Expression("1.2*floor(x[0]+0.45)" + "+ 1.0*(1-ceil(x[0]-0.45))"), Expression("1.0*floor(x[0]+0.45)" + "+ 0.8*(1-ceil(x[0]-0.45))"), ] weight_0 = [ Expression("0.45*floor(x[0]+0.45)" + "+ 0.45*(1-ceil(x[0]-0.45))" + "+ minField", minField=minField), Expression("0.55*floor(x[0]+0.45)" + "+ 0.55*(1-ceil(x[0]-0.45))" + "+ minField", minField=minField), ] # Create files for storing solution files_a = [File("results_4/weight_" + str(i) + ".pvd") for i in range(N)] files_b = [File("results_4/abscissa_" + str(i) + ".pvd") for i in range(N)] files_c = [File("results_4/weighted_abscissa_" + str(i) + ".pvd") for i in range(N)] files_d = [File("results_4/weight_S_" + str(i) + ".pvd") for i in range(N)] files_e = [File("results_4/weighted_abscissa_S_" + str(i) + ".pvd") for i in range(N)] files_f = [ File("results_4/density.pvd"), File("results_4/mean.pvd"), File("results_4/std_dev.pvd"), File("results_4/skew.pvd"), ] files = files_a + files_b + files_c + files_d + files_e + files_f # import pdb; pdb.set_trace() mod.main(T, dt, dim, n_ele, N, A_cond, A_pert, D_x, abscissa_0, weight_0, files)
#! /usr/bin/env python from dolfin import * from numpy import * import distribution_diffusion as mod # some constants T = 100.0 dt = 0.1 dim = 1 n_ele = 5 N = 2 A_cond = 1e-8 A_pert = 5e-3 G = 1.0 D_x = 1e-7 weighted_abscissa_0 = [Expression('1.0', G=G),Expression('1.0', G=G)] weight_0 = [Expression('0.5'),Expression('0.5')] # Create files for storing solution files_a = [File("results/weight_" + str(i) + ".pvd") for i in range(N)] files_b = [File("results/abscissa_" + str(i) + ".pvd") for i in range(N)] files_c = [File("results/density.pvd"), File("results/mean.pvd"), File("results/std_dev.pvd"), files = files_a + files_b + files_c mod.main(T, dt, dim, n_ele, N, A_cond, A_pert, D_x, weighted_abscissa_0, weight_0, files)
def main(): # some constants T = 1.0 dt = 0.1 dim = 1 n_ele = 10 N = 2 A_cond = 1e-11 A_pert = 5e-4 D_x = 1e-4 G = 10.0 minField = 1e-10 abscissa_0 = [Expression('G*x[0]', G=G), Expression('G*x[0]-1.0', G=G)] weight_0 = [Expression('0.5'), Expression('0.5')] # Create files for storing solution files_a = [File("results_5/weight_" + str(i) + ".pvd") for i in range(N)] files_b = [File("results_5/abscissa_" + str(i) + ".pvd") for i in range(N)] files_c = [File("results_5/weighted_abscissa_" + str(i) + ".pvd") for i in range(N)] files_d = [File("results_5/density.pvd"),File("results_5/mean.pvd"),File("results_5/std_dev.pvd")] files_e = [File("results_5/t_density.pvd"),File("results_5/t_mean.pvd"),File("results_5/t_std_dev.pvd")] files = files_a + files_b + files_c + files_d + files_e # import pdb; pdb.set_trace() mod.main(T, dt, dim, n_ele, N, A_cond, A_pert, D_x, abscissa_0, weight_0, files[:-3]) def calculateTheoryStats(): theoretical_moments = zeros([mesh.num_vertices(),2*N]) for i in range(2*N): for j in range(N): theoretical_moments[:,i] += 0.5 * (G*mesh.coordinates()[:,0] - 1.0*j + sin(3**j*pi/2) * sqrt(2*D_x.vector().array()[:]*G**2*t))**i TheoryDensity = Function(FS) TheoryMean = Function(FS) TheoryStd = Function(FS) TheoryDensity.vector()[:] = array(theoretical_moments[:,0]) TheoryMean.vector()[:] = array(theoretical_moments[:,1]/theoretical_moments[:,0]) var = (theoretical_moments[:,2]/theoretical_moments[:,0] - (theoretical_moments[:,1]/theoretical_moments[:,0])**2) var[var<0.0] = 0.0 TheoryStd.vector()[:] = array(sqrt(var)) files[-3] << TheoryDensity files[-2] << TheoryMean files[-1] << TheoryStd # Create mesh and define function space if dim == 1: mesh = UnitInterval(n_ele) if dim == 2: mesh = UnitSquare(n_ele, n_ele) if dim ==3: mesh = UnitCube(n_ele, n_ele, n_ele) FS = FunctionSpace(mesh, 'Lagrange', 1) D_x = project(Expression('D_x', D_x=D_x), FS) t = 0 # Time step loop for theory while t <= T: calculateTheoryStats() t += dt