# max_steps=677 max_steps=200) the_mesh.save("/tmp/example.mesh") nfem2.set_default_mesh(the_mesh) ##### Making the elements... ##### # conductivity (scalar) element_sigma = nfem2.make_element("sigma", []) element_drho_by_dt = nfem2.make_element("drho_by_dt", []) element_phi = nfem2.make_element("phi", []) element_J = nfem2.make_element("J", [2]) mwe_sigma = nfem2.make_mwe("mwe_sigma", [(1, element_sigma)]) mwe_drho_by_dt = nfem2.make_mwe("mwe_drho_by_dt", [(1, element_drho_by_dt)]) mwe_phi = nfem2.make_mwe("mwe_phi", [(1, element_phi)]) mwe_J = nfem2.make_mwe("mwe_J", [(1, element_J)]) diffop_laplace = nfem2.diffop("-<d/dxj drho_by_dt|sigma|d/dxj phi>, j:2") diffop_J = nfem2.diffop("<J(k)|sigma|d/dxk phi>, k:2") # Initial conductivity is spatially constant: def fun_sigma0(dof_name_indices, position): return sigma0 # Later on, we will modify this field:
node_position = meshinfo[0][2] # print initial_magn ##### Making the elements... ##### # conductivity (scalar) element_sigma = nfem2.make_element("sigma", []) element_drho_by_dt = nfem2.make_element("drho_by_dt", []) element_phi = nfem2.make_element("phi", []) element_J = nfem2.make_element("J", [2]) element_M = nfem2.make_element("M", [3]) # in make_mwe "1" is the region where I set the field mwe_sigma = nfem2.make_mwe("mwe_sigma", [(1, element_sigma)]) mwe_drho_by_dt = nfem2.make_mwe("mwe_drho_by_dt", [(1, element_drho_by_dt)]) mwe_phi = nfem2.make_mwe("mwe_phi", [(1, element_phi)]) mwe_J = nfem2.make_mwe("mwe_J", [(1, element_J)]) mwe_M = nfem2.make_mwe("mwe_M", [(1, element_M)]) diffop_laplace = nfem2.diffop("-<d/dxj drho_by_dt|sigma|d/dxj phi>, j:2") diffop_J = nfem2.diffop("-<J(k)|sigma|d/dxk phi>, k:2") # Initial conductivity is spatially constant: def fun_sigma0(dof_name_indices, position): return sigma0
##print "#######################################" ##for n in range(len(node_position)): ## print n, node_position[n] ##### Making the elements... ##### element_sigma_Py = nfem2.make_element("sigma_Py", []) element_sigma_Au = nfem2.make_element("sigma_Au", []) element_drho_by_dt = nfem2.make_element("drho_by_dt", []) element_phi = nfem2.make_element("phi", []) element_J = nfem2.make_element("J", [3]) element_M = nfem2.make_element("M", [3]) # sigma = sigma_Py for element 1 (ring) and sigma = sigma_Au for elements [2:7] (contacts) mwe_sigma = nfem2.make_mwe("mwe_sigma", [(1, element_sigma_Py)] + [(body_nr, element_sigma_Au) for body_nr in range(2, 8)]) mwe_drho_by_dt = nfem2.make_mwe("mwe_drho_by_dt", [(body_nr, element_drho_by_dt) for body_nr in range(1, 8)]) mwe_phi = nfem2.make_mwe("mwe_phi", [(body_nr, element_phi) for body_nr in range(1, 8)]) mwe_J = nfem2.make_mwe("mwe_J", [(body_nr, element_J) for body_nr in range(1, 8)]) mwe_M = nfem2.make_mwe("mwe_M", [(1, element_M)]) # the conductivities sum up: temporary assumption (reasonable for now) diffop_laplace = nfem2.diffop( "-<d/dxj drho_by_dt|sigma_Py|d/dxj phi>-<d/dxj drho_by_dt|sigma_Au|d/dxj phi>, j:3" ) diffop_J = nfem2.diffop(
##print "#######################################" ##for n in range(len(node_position)): ## print n, node_position[n] ##### Making the elements... ##### element_sigma_Py = nfem2.make_element("sigma_Py",[]); element_sigma_Au = nfem2.make_element("sigma_Au",[]); element_drho_by_dt= nfem2.make_element("drho_by_dt",[]); element_phi = nfem2.make_element("phi",[]); element_J = nfem2.make_element("J",[3]); element_M = nfem2.make_element("M",[3]); # sigma = sigma_Py for element 1 (ring) and sigma = sigma_Au for elements [2:7] (contacts) mwe_sigma = nfem2.make_mwe("mwe_sigma", [(1, element_sigma_Py)]+[(body_nr, element_sigma_Au) for body_nr in range(2,8)]) mwe_drho_by_dt = nfem2.make_mwe("mwe_drho_by_dt",[(body_nr,element_drho_by_dt) for body_nr in range(1,8)]) mwe_phi = nfem2.make_mwe("mwe_phi", [(body_nr,element_phi) for body_nr in range(1,8)]) mwe_J = nfem2.make_mwe("mwe_J", [(body_nr,element_J) for body_nr in range(1,8)]) mwe_M = nfem2.make_mwe("mwe_M", [(1,element_M)]) # the conductivities sum up: temporary assumption (reasonable for now) diffop_laplace=nfem2.diffop("-<d/dxj drho_by_dt|sigma_Py|d/dxj phi>-<d/dxj drho_by_dt|sigma_Au|d/dxj phi>, j:3") diffop_J=nfem2.diffop("-<J(k)|sigma_Py|d/dxk phi>-<J(k)|sigma_Au|d/dxk phi>, k:3") # Initial conductivity depends on the object (ring or contacts) def fun_sigma0(dof_name_indices,position): ## print "fun_sigma0 -> pos:", position if(dof_name_indices[0]=="sigma_Au"):