Dear Robert Cimrman,
I have a simple question about the gradient traction boundary as shown in attached picture. I know a constant traction can be implemented in the following way:
rig = domain.create_region('Rig', 'vertices in x > %f' % (max_x - eps), 'facet')
traction_rig = Material('traction_rig', val=[[rig_trac], [0.], [0.]]) # sigma11, sigma22, sigma12.
t4 = Term.new('dw_surface_ltr(traction_rig.val, v)', integral, rig, traction_rig=traction_rig, v=v)
Could you show how to implement if traction is function of coordinate? Thanks.
Regards
Ronghai
在 2015年3月18日星期三 UTC+1下午1:03:37,Robert Cimrman写道:On 03/18/2015 10:04 AM, Ronghai Wu wrote:
> Thanks, after adding the code before solving, it works.
> I do not exactly understand what you mean by "time-stepping solvers". This
> problem exists only in sfepy2015.1 or also in sfepy-2014.4? Do you mean a
> interactive building problem with codes like "pb.time_update,
> pb.update_materials" does not not work well currently? I am worrying about
> the influence of this "time-stepping solvers". Where can I find the fix?
> also in sfepy-devel?
This means that it was not possible to use the time stepping solvers from sfepy
(i.e. those in sfepy/solvers/ts_solvers.py) interactively. But you were free to
write your own time stepping for time-dependent problems, of course,
pb.time_update(), pb.update_materials() etc. work ok.
Anyway, now it is possible, as I have just updated the time stepping code in
sfepy, see my next e-mail.
r.
> 在 2015年3月13日星期五 UTC+1下午1:42:26,Robert Cimrman写道:
>>
>> The linear option works in connection with time-stepping solvers. I have
>> found
>> recently, that the time stepping solvers do not play well in interactive
>> building of the problem. The fix should be available soon.
>>
>> The singular matrix warning is caused by the fact, that in the linear case
>> the
>> non-linear solver assumes that the matrix is already assembled (which is
>> the
>> case, if called from the time-stepping solvers in sfepy). In your script,
>> try
>> calling the following before solving the problem:
>>
>> # pb = Problem('elasticity', equations=eqs, nls=nls, ls=ls)
>> from sfepy.solvers.ts_solvers import prepare_matrix
>> prepare_matrix(pb, pb.create_state())
>>
>> r.