Hi guys

Playing around with the dw_lin_elastic_th term. Unfortunately, no examples for this one. I've pasted my code at [1]. I'm assuming the material parameter H is similar to that for an isotropic material D. I'm getting a 'history error' as shown below. Any ideas?


Thx

[1] http://paste.pocoo.org/show/306024/




[grassy@myhost sfepy]$ ~/sfepy/simple.py nits.py
sfepy: left over: ['disp', 'verbose', '__builtins__', '_filename', '__file__', '__name__', 'stress_strain', 'youngpoisson_to_lame', 'young', '__package__', 'mesh_file', 'Mesh', 'stiffness_tensor_youngpoisson', 'poisson', '__doc__']
sfepy: reading mesh (/home/grassy/sfepy.wiki/msh/its2D.mesh)...
sfepy: ...done in 0.00 s
sfepy: setting up domain edges...
sfepy: ...done in 0.00 s
sfepy: creating regions...
sfepy:     Top
sfepy:     Bottom
sfepy:     Omega
sfepy:     Left
sfepy: ...done in 0.01 s
sfepy: equation "equilibrium":
sfepy:
        dw_lin_elastic_iso.2.Omega(asphalt.lam,asphalt.mu,v,u)+
        dw_lin_elastic_th.2.Omega(ts,asphalt.D,v,du/dt)=0
       
sfepy: setting up dof connectivities...
sfepy: ...done in 0.00 s
sfepy: using solvers:
                ts: ts
               nls: newton
                ls: ls
sfepy: ====== time 0.000000e+00 (step 1 of 10) =====
sfepy: updating variables...
sfepy: ...done
======================================================================
Displacement:  -0.111111111111
sfepy: updating materials...
sfepy:     asphalt
sfepy: ...done in 0.00 s
sfepy: matrix shape: (93, 93)
sfepy: assembling matrix graph...
sfepy: ...done in 0.00 s
sfepy: matrix structural nonzeros: 1063 (1.23e-01% fill)
sfepy: nls: iter: 0, residual: 1.015969e+02 (rel: 1.000000e+00)
sfepy:   rezidual:    0.00 [s]
sfepy:      solve:    0.00 [s]
sfepy:     matrix:    0.01 [s]
sfepy: nls: iter: 1, residual: 7.768306e-14 (rel: 7.646202e-16)
sfepy: equation "tmp":
sfepy: de_cauchy_strain.2.Omega(u)
sfepy: equation "tmp":
sfepy: de_cauchy_stress.2.Omega(asphalt.D,u)
sfepy: ====== time 1.111111e-01 (step 2 of 10) =====
sfepy: updating variables...
sfepy: ...done
======================================================================
Displacement:  -0.222222222222
sfepy: updating materials...
sfepy:     asphalt
sfepy: ...done in 0.00 s
history update!
Traceback (most recent call last):
  File "/home/grassy/sfepy/simple.py", line 120, in <module>
    main()
  File "/home/grassy/sfepy/simple.py", line 117, in main
    app()
  File "/home/grassy/sfepy/sfepy/applications/application.py", line 29, in call_basic
    return self.call( **kwargs )
  File "/home/grassy/sfepy/sfepy/applications/simple_app.py", line 112, in call
    post_process_hook_final=self.post_process_hook_final)
  File "/home/grassy/sfepy/sfepy/solvers/generic.py", line 216, in solve_direct
    nls_status=nls_status)
  File "/home/grassy/sfepy/sfepy/solvers/generic.py", line 138, in solve_evolutionary_op
    for ts, state in time_solver( state0 ):
  File "/home/grassy/sfepy/sfepy/solvers/ts.py", line 118, in __call__
    state = step_fun( self.ts, state0, *step_args )
  File "/home/grassy/sfepy/sfepy/solvers/generic.py", line 116, in time_step_function
    state = problem.solve(state0=state0)
  File "/home/grassy/sfepy/sfepy/fem/problemDef.py", line 799, in solve
    vec = solvers.nls(vec0)
  File "/home/grassy/sfepy/sfepy/solvers/nls.py", line 183, in __call__
    vec_r = fun( vec_x )
  File "/home/grassy/sfepy/sfepy/fem/evaluate.py", line 25, in eval_residual
    vec_r = pb.equations.eval_residuals(vec)
  File "/home/grassy/sfepy/sfepy/fem/equations.py", line 510, in eval_residuals
    self.evaluate(mode='weak', dw_mode='vector', asm_obj=residual)
  File "/home/grassy/sfepy/sfepy/fem/equations.py", line 495, in evaluate
    asm_obj=asm_obj)
  File "/home/grassy/sfepy/sfepy/fem/equations.py", line 674, in evaluate
    ret_status=True)
  File "/home/grassy/sfepy/sfepy/terms/terms.py", line 1258, in evaluate
    **kwargs):
  File "/home/grassy/sfepy/sfepy/terms/terms_base.py", line 81, in _call
    for ii, fargs in iter_kernel():
  File "/home/grassy/sfepy/sfepy/terms/termsLinElasticity.py", line 179, in iter_kernel
    state=state, get_vector=self.get_vector)
  File "/home/grassy/sfepy/sfepy/terms/cache.py", line 233, in __call__
    out = self._call(key, term, ih, **kwargs)
  File "/home/grassy/sfepy/sfepy/terms/cache.py", line 215, in _call
    self.update(key, term, ih, **kwargs)
  File "/home/grassy/sfepy/sfepy/terms/cachesBasic.py", line 92, in update
    print kwargs['history']
KeyError: 'history'


--
Andre