Hello,
Thank you for the time you've put into this project.
I've been solving a particular elliptic PDE by running SfePy on a short problem description file with: python simple.py problem_desc.py. Now, since I'd like to do this many times, with different parameters in the problem description file each time, I'd like to construct the problem directly, by creating a ProblemDefinition instance, as is done in the linear_elasticity.py example.
(I'm working with the latest version of SfePy.) I've attempted the conversion, but clearly something is wrong, as I get a very large residual:
python direct.py sfepy: reading mesh [line2, tri3, quad4, tetra4, hexa8] (../rectangle_fine_quad_r.vtk)... sfepy: ...done in 0.72 s sfepy: setting up dof connectivities... sfepy: ...done in 0.00 s sfepy: updating variables... sfepy: ...done sfepy: matrix shape: (40602, 40602) sfepy: assembling matrix graph... sfepy: ...done in 0.09 s sfepy: matrix structural nonzeros: 723604 (4.39e-04% fill) sfepy: updating materials... sfepy: mat_diffusion sfepy: ...done in 0.06 s sfepy: nls: iter: 0, residual: 5.209283e+08 (rel: 1.000000e+00) fish: Job 1, “python direct.py ” terminated by signal SIGTERM (Polite quit request)
, whereas, using the problem description file:
python ../../sfepy/simple.py problem_desc.py sfepy: left over: ['verbose', '__builtins__', 'pdb', '__doc__', '__name__', 'sys', 'data_dir', '__package__', 'refine_mesh', '_filename', 'np', '__file__', 'math'] sfepy: reading mesh [line2, tri3, quad4, tetra4, hexa8] (../rectangle_fine_quad_r.vtk)... sfepy: ...done in 0.69 s sfepy: creating regions... sfepy: Omega sfepy: Expiry sfepy: ...done in 0.06 s sfepy: equation "Price": sfepy: dw_diffusion.2.Omega(mat_diffusion.f, s, p) = 0 sfepy: setting up dof connectivities... sfepy: ...done in 0.00 s sfepy: using solvers: ts: no ts nls: newton ls: ls sfepy: updating variables... sfepy: ...done sfepy: matrix shape: (20200, 20200) sfepy: assembling matrix graph... sfepy: ...done in 0.02 s sfepy: matrix structural nonzeros: 179998 (4.41e-04% fill) sfepy: updating materials... sfepy: mat_diffusion sfepy: ...done in 0.06 s sfepy: nls: iter: 0, residual: 0.000000e+00 (rel: 0.000000e+00)
I've pared my problem description file and direct approach file down to the bare minimum. Would you mind having a quick look to see if you can spot the problem? Otherwise, is there some documentation that would help with the transition?
Many thanks, Ben