def update_sigma(the_field_sigma,i): compute_J=nfem.prematrix_applicator(prematrix_J, field_mid=the_field_sigma) laplace_solver=nfem.laplace_solver(prematrix_laplace, dirichlet_bcs=[(-1,1,laplace_dbc)], mwe_mid=the_field_sigma) # field_phi = laplace_solver(cofield_drho_by_dt, dbc_values=laplace_dbc_values) field_J = nfem.cofield_to_field(compute_J(field_phi)) #print "field_J contents:", nfem.data_doftypes(field_J) # XXX NOTE: we should be able to make an applicator that does the # cofield_to_field conversion automatically! # # # Next, let us compute the new condictivity by site-wise operation on # field_J. We just overwrite field_sigma: # recompute_conductivity([h_x,h_y,sigma0,alpha],fields=[the_field_sigma,field_J]) print "Refcount field_sigma:",ocaml.sys_refcount(the_field_sigma) return the_field_sigma
def update_sigma(the_field_sigma): compute_J=nfem.prematrix_applicator(prematrix_J, mwe_mid=the_field_sigma) laplace_solver=nfem.laplace_solver(prematrix_laplace, dirichlet_bcs=[(-1,1,laplace_dbc)], mwe_mid=the_field_sigma) # field_phi = laplace_solver(cofield_drho_by_dt, dbc_values=laplace_dbc_values) field_J = nfem.cofield_to_field(compute_J(field_phi)) # XXX NOTE: we should be able to make an applicator that does the # cofield_to_field conversion automatically! # # # Next, let us compute the new condictivity by site-wise operation on # field_J. We just overwrite field_sigma: # recompute_conductivity=nfem.site_wise_applicator(parameter_names=["H_x","H_y","sigma0","alpha"], # all the names of extra parameters code=code_recompute_conductivity, fields=[the_field_sigma,field_J] ) # # recompute_conductivity([h_x,h_y,sigma0,alpha]) return the_field_sigma
def update_sigma(the_field_sigma, i): compute_J = nfem.prematrix_applicator(prematrix_J, field_mid=the_field_sigma) laplace_solver = nfem.laplace_solver(prematrix_laplace, dirichlet_bcs=[(-1, 1, laplace_dbc)], mwe_mid=the_field_sigma) # field_phi = laplace_solver(cofield_drho_by_dt, dbc_values=laplace_dbc_values) field_J = nfem.cofield_to_field(compute_J(field_phi)) #print "field_J contents:", nfem.data_doftypes(field_J) # XXX NOTE: we should be able to make an applicator that does the # cofield_to_field conversion automatically! # # # Next, let us compute the new condictivity by site-wise operation on # field_J. We just overwrite field_sigma: # recompute_conductivity([h_x, h_y, sigma0, alpha], fields=[the_field_sigma, field_J]) nfem.visual.fields2vtkfile([field_phi, field_J, the_field_sigma], 'fem-rings2_all%d.vtk' % i, the_mesh) return the_field_sigma
def compute_total_current(the_field_sigma): laplace_solver=nfem.laplace_solver(prematrix_laplace, dirichlet_bcs=[(-1,1,laplace_dbc)], mwe_mid=the_field_sigma) compute_div_J=nfem.prematrix_applicator(prematrix_laplace, field_mid=the_field_sigma) field_phi=laplace_solver(cofield_drho_by_dt, dbc_values=laplace_dbc_values) cofield_div_J=compute_div_J(field_phi) return accumulate_J_total([0.0,0.0,0.0,0.0],cofields=[cofield_div_J])
def compute_total_current(the_field_sigma): laplace_solver = nfem.laplace_solver(prematrix_laplace, dirichlet_bcs=[(-1, 1, laplace_dbc)], mwe_mid=the_field_sigma) compute_div_J = nfem.prematrix_applicator(prematrix_laplace, field_mid=the_field_sigma) field_phi = laplace_solver(cofield_drho_by_dt, dbc_values=laplace_dbc_values) cofield_div_J = compute_div_J(field_phi) return accumulate_J_total([0.0, 0.0, 0.0, 0.0], cofields=[cofield_div_J])
def compute_total_current(the_field_sigma): laplace_solver=nfem.laplace_solver(prematrix_laplace, dirichlet_bcs=[(-1,1,laplace_dbc)], mwe_mid=the_field_sigma) compute_div_J=nfem.prematrix_applicator(prematrix_laplace, mwe_mid=the_field_sigma) field_phi=laplace_solver(cofield_drho_by_dt, dbc_values=laplace_dbc_values) print "OK 1 - field_phi!\n" sys.stdout.flush() compute_div_J(field_phi, target=_cofield_div_J) print "OK 2 - div_J!\n" sys.stdout.flush() return _accumulate_J_total([0.0,0.0,0.0,0.0])
raise StandardError, "this place can't be reached" cofield_drho_by_dt = nfem.make_cofield(mwe_drho_by_dt) print "1" prematrix_laplace = nfem.prematrix( diffop_laplace, mwe_drho_by_dt, mwe_phi, mwe_mid=mwe_sigma) print "2" prematrix_J = nfem.prematrix(diffop_J, mwe_J, mwe_phi, mwe_mid=mwe_sigma) print "3" compute_J = nfem.prematrix_applicator(prematrix_J, field_mid=field_sigma) print "4" laplace_solver = nfem.laplace_solver( prematrix_laplace, dirichlet_bcs=[(-1, 1, laplace_dbc)], mwe_mid=field_sigma) print "5" field_phi = laplace_solver(cofield_drho_by_dt, dbc_values=laplace_dbc_values) print "6" field_J = nfem.cofield_to_field(compute_J(field_phi)) nfem.visual.fields2vtkfile([field_phi, field_J], 'result.vtk', the_mesh) print "Try to visualise with " print "mayavi -d run_bug-fem2-halfring/result.vtk -m SurfaceMap -m VelocityVector"
prematrix_laplace=nfem.prematrix(diffop_laplace, mwe_drho_by_dt,mwe_phi, mwe_mid=mwe_sigma) print "2" prematrix_J=nfem.prematrix(diffop_J, mwe_J,mwe_phi, mwe_mid=mwe_sigma) print "3" compute_J=nfem.prematrix_applicator(prematrix_J, field_mid=field_sigma) print "4" laplace_solver=nfem.laplace_solver(prematrix_laplace, dirichlet_bcs=[(-1,1,laplace_dbc)], mwe_mid=field_sigma) print "5" field_phi = laplace_solver(cofield_drho_by_dt, dbc_values=laplace_dbc_values) print "6" field_J = nfem.cofield_to_field(compute_J(field_phi)) nfem.visual.fields2vtkfile([field_phi,field_J],'result.vtk',the_mesh) print "Try to visualise with " print "mayavi -d run_bug-fem2-halfring/result.vtk -m SurfaceMap -m VelocityVector"