Hi,

Thanks for inviting me to contribute usage issues, Robert. I'm using sfepy to solve a relatively simple, 2D, thermal diffusion problem.  i can solve it useing the following ebcs and equations (i.e., implied zero heat flux at left and right boundaries):

ebcs = {

't1' : ('Gamma_Top', {'t.0' : 0.0}),

't2' : ('Gamma_Bottom', {'t.0' : 1000.0}),

}


equations = {

'Temperature' : """dw_laplace.2.Omega( coef.val, s, t )

= 0 """

}


This works perfectly. I actually need to solve the same problem with an ebc at the top but a Neumann boundary condition at the bottom. So I use:


ebcs = {

't1' : ('Gamma_Top', {'t.0' : 0.0}),

}


equations = {

'Temperature' : """dw_laplace.2.Omega( coef.val, s, t )

= dw_surface_integrate.2.Gamma_Bottom(flux.val, s)"""

}


where flux is defined in materials as:


materials = {

    'flux' : ({'val' : 1.0},),

    'coef' : ({'val' : 1.0},),

}


This seems to be exactly like what is done in the example poisson_neumann.py But now, I find that the solver fails:


sfepy: updating materials...

sfepy:     coef

sfepy:     flux

sfepy: ...done in 0.01 s

sfepy: nls: iter: 0, residual: 9.332878e+04 (rel: 1.000000e+00)

sfepy:   rezidual:    0.00 [s]

sfepy:      solve:    0.00 [s]

sfepy:     matrix:    0.00 [s]

sfepy: linear system not solved! (err = 5.659775e-10 < 1.000000e-10)

sfepy: nls: iter: 1, residual: 5.748516e-10 (rel: 6.159425e-15)


I'm confused by this, because I thought that this is still a well-posed problem. Can anyone please suggest to me what I may be doing wrong?


Regards,


- Phil