In examples/large_deformation/hyperelastic.py a rotation by displacements is applied. By using a similar function the vectors defining the force couples could be defined for dw_surface_ltr (IMHO). Does it make sense?
r.
----- Reply message -----
From: "Andre Smit" <freev...(a)gmail.com>
To: <sfepy...(a)googlegroups.com>
Subject: Torque
Date: Sat, Dec 18, 2010 05:10
What is the best way to apply a torque load to a model?
--
Andre
--
You received this message because you are subscribed to the Google Groups "sfepy-devel" group.
To post to this group, send email to sfepy...(a)googlegroups.com.
To unsubscribe from this group, send email to sfepy-devel...(a)googlegroups.com.
For more options, visit this group at http://groups.google.com/group/sfepy-devel?hl=en.
I'm working on modeling a next-generation X-ray mirror for which the
shape can be actively controlled by use of many thin piezo-electric
actuators mounted on the mirror surface. The mirror is basically a
glass conical paraboloid with a 1 meter radius and 200 micron
thickness (e.g. http://en.wikipedia.org/wiki/X-ray_optics). Our
project is currently using a proprietary FEA package, but the model
setup and turnaround time is slow, in part because there is only one
part-time engineer who can run it.
SfePy looks like a great package and we're hoping that it could be
used to automate running a large number of different cases. I've
spent some time reading the documentation but I have a few questions
that I hope can be answered before going too much further. I want to
apologize in advance if some of my wording is imprecise, I have a
physics background but this topic is a bit outside my realm...
- Is SfePy appropriate for this problem?
- If a specify a grid with about 800 x 400 points (azimuthal, axial)
and about 10 boundary conditions (corresponding to mount points), what
is the rough order of magnitude of time to compute the solution? Is
it seconds, minutes, hours, or days?
- The linear elastic examples show a problem with a specified
displacement. How do I specify an input force? The piezo essentially
provides a tensile force along the surface.
- Is there a way to specify the problem and solve in cylindrical
coordinates? This is the natural coordinate system.
- How do I specify 6-DOF constraints which correspond to the mirror
mounts?
Thanks in advance for any help!
Tom Aldcroft
I want to write a paper themed on, doing simulation using scripting
language with legacy code. As a civil engineer (structural), i find the
tensile strength of concrete test presented in sfepy primer quite suitable
to use in my writing. will this cause any copyright problem???
And secondly, can anybody detail the process of wrapping python around C in
sfepy?? just to make sure my understanding is right.
Thanks!
Hi Andre,
the time history terms *th were neglected during the easier_terms and cython updates. I have planned to update them next week or so as I need them working again. So wait please a few days, I will try to fix them asap.
r.
----- Reply message -----
From: "freevryheid" <freev...(a)gmail.com>
To: <sfepy...(a)googlegroups.com>
Subject: Revisit viscoelastic materials
Date: Sun, Jan 29, 2012 13:44
No examples or tests for the dw_lin_elastic_th or dw_lin_elastic_eth terms. Attached problem fails with the following error. Any suggestions to point me in the right direction.
Andre
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/home/grassy/sfepy/simple.py in <module>()
123
124 if __name__ == '__main__':
--> 125 main()
/home/grassy/sfepy/simple.py in main()
120 parametric_hook = conf.get_function(opts.parametric_hook)
121 app.parametrize( parametric_hook )
--> 122 app()
123
124 if __name__ == '__main__':
/home/grassy/sfepy/sfepy/applications/application.pyc in call_basic(self, **kwargs)
27
28 def call_basic( self, **kwargs ):
---> 29 return self.call( **kwargs )
30
31 def call_parametrized( self, **kwargs ):
/home/grassy/sfepy/sfepy/applications/simple_app.pyc in call(self)
115 post_process_hook=self.post_process_hook,
116 post_process_hook_final=self.post_process_hook_final,
--> 117 pre_process_hook=self.pre_process_hook)
118
119 return out
/home/grassy/sfepy/sfepy/solvers/generic.pyc in solve_direct(conf, options, problem, step_hook, post_process_hook, post_process_hook_final, pre_process_hook, nls_status)
214 step_hook=step_hook,
215 post_process_hook=post_process_hook,
--> 216 nls_status=nls_status)
217 else:
218 ##
/home/grassy/sfepy/sfepy/solvers/generic.pyc in solve_evolutionary_op(problem, save_results, return_history, step_hook, post_process_hook, nls_status)
134
135 ii = 0
--> 136 for ts, state in time_solver( state0 ):
137
138 if step_hook is not None:
/home/grassy/sfepy/sfepy/solvers/ts.pyc in __call__(self, state0, conf, step_fun, step_args)
189 output( self.format % (time, step + 1, self.ts.n_step) )
190
--> 191 state = step_fun( self.ts, state0, *step_args )
192 state0 = state.copy(deep=True)
193 yield self.ts, state
/home/grassy/sfepy/sfepy/solvers/generic.pyc in time_step_function(ts, state0, problem, nls_status)
80 ev = problem.get_evaluator()
81 try:
---> 82 vec_r = ev.eval_residual(state(), is_full=True)
83 except ValueError:
84 output('initial residual evaluation failed, giving up...')
/home/grassy/sfepy/sfepy/fem/evaluate.pyc in eval_residual(self, vec, is_full)
50 try:
51 pb = self.problem
---> 52 vec_r = pb.equations.eval_residuals(vec)
53
54 except StopIteration, exc:
/home/grassy/sfepy/sfepy/fem/equations.pyc in eval_residuals(self, state, by_blocks, names)
560 out = self.create_stripped_state_vector()
561
--> 562 self.evaluate(mode='weak', dw_mode='vector', asm_obj=out)
563
564 return out
/home/grassy/sfepy/sfepy/fem/equations.pyc in evaluate(self, mode, dw_mode, term_mode, asm_obj)
503 for eq in self:
504 eout = eq.evaluate(mode=mode, dw_mode=dw_mode, term_mode=term_mode,
--> 505 asm_obj=asm_obj)
506 if mode != 'weak':
507 out[eq.name] = eout
/home/grassy/sfepy/sfepy/fem/equations.pyc in evaluate(self, mode, dw_mode, term_mode, asm_obj)
730 term_mode=term_mode,
731 standalone=False,
--> 732 ret_status=True)
733 term.assemble_to(asm_obj, val, iels, mode=dw_mode)
734
/home/grassy/sfepy/sfepy/terms/terms.pyc in evaluate(self, mode, diff_var, standalone, ret_status, **kwargs)
1501
1502 _args = tuple(args) + (mode, term_mode, diff_var)
-> 1503 fargs = self.get_fargs(*_args, **kwargs)
1504
1505 n_elr, n_qpr, dim, n_enr, n_cr = self.get_data_shape(varr)
TypeError: get_fargs() takes at most 3 arguments (8 given)
--
You received this message because you are subscribed to the Google Groups "sfepy-devel" group.
To view this discussion on the web visit https://groups.google.com/d/msg/sfepy-devel/-/eNJ3ZUbDbuYJ.
To post to this group, send email to sfepy...(a)googlegroups.com.
To unsubscribe from this group, send email to sfepy-devel...(a)googlegroups.com.
For more options, visit this group at http://groups.google.com/group/sfepy-devel?hl=en.
Hallöchen!
I get the warning
warning: singular matrix
zeroing nan and inf entries...
warning: (almost) singular matrix! (estimated cond. number: inf)
because I have nodes in the mesh that don't belong to any element.
I could get rid of them, however, this would make my postprocessing
algorithm more complicated. Can I safely ignore this message?
Tschö,
Torsten.
--
Torsten Bronger Jabber ID: torsten...(a)jabber.rwth-aachen.de
or http://bronger-jmp.appspot.com
FYI: I have just updated the gitwash tutorial [1], and made it more visible by
adding it to the table of contents of the developer guide. It discusses in
detail how to work with sfepy sources, git and the github site (which is awesome!).
r.
[1]
http://docs.sfepy.org/doc-devel/developer_guide.html#working-with-sfepy-sou…
Replying on list so that others may chime in.
Unfortunately, I am pretty much swamped with research, so I won't have
time to dig into this. But it looks to me like your MED contains
objects not (yet) supported by sfepy, either due to changes in the MED
file format or not fully developed support of MED in meshio.py. Keep
in mind that the MED support is rudimentary at best, although it
worked for my purposes at the time.
If you have some time to dig around, you can use hdfview [1] to peak
into your MED file (MED is based on hdf5, if I recall correctly). The
problem is basically here in meshio.py:
File "e:\sfepy\sfepy\fem\meshio.py", line 1603, in read
coors = mesh_group.NOE.COO.read()
If you look at your MED file with hdfview, you should see a tree like
structure and be able to find something similar to NOE node with a COO
subnode (check the Salome manuals for more details on MED format). So
the function call mesh_group.NOE.COO.read() needs to be updated to the
correct names of nodes. Ideally, there would be a more robust way to
do find the right nodes (probably in pytables which does the hdf
parsing).
I hope I can finish my research soon so that I may return to
contributing to SfePy. Good luck with this, and feel free to ask on
the sfepy-devel list if you get stuck.
Warm regards,
Logan
2012/1/20 rosickey wang <rosi...(a)gmail.com>
>
> Sorry to bother you:
>
> Thank you for this introduction,http://code.google.com/p/sfepy/wiki/ExampleUsingSalomeWithSfePy
>
> I am a beginner and met some problems
>
> I use sfepy 2011.4 and salome 6.4
>
> this is my script:
> import geompy
> import salome
> vx = geompy.MakeVertex(100, 0, 0)
> vy = geompy.MakeVertex(0, 100, 0)
> vz = geompy.MakeVertex( 0, 0, 100)
> zz = geompy.MakeVertex( 0, 0, 0)
>
> wire_1 = geompy.MakeSketcher("Sketcher:F 150 0:R 90:C 50 115:R 0:C -100 15:L 150:D 0 -1:IY 0")
> geompy.addToStudy(vx,"vx")
> geompy.addToStudy(vy,"vy")
> geompy.addToStudy(vz,"vz")
> geompy.addToStudy(zz,"zz")
> geompy.addToStudy(wire_1,"wire_1")
>
> axis = geompy.MakeVector(zz,vx)
> axisz= geompy.MakeVector(zz,vz)
> wire_2 = geompy.MakeMirrorByAxis(wire_1,axis)
> geompy.addToStudy(wire_2,"wire_2")
> edges1 = geompy.ExtractShapes(wire_1,geompy.ShapeType["EDGE"])
>
> edges2 = geompy.ExtractShapes(wire_2,geompy.ShapeType["EDGE"])
> wire = geompy.MakeWire(edges1+edges2)
> isPlanarFace = 1
> face1= geompy.MakeFaceWires(edges1+edges2,isPlanarFace)
> id_face1 = geompy.addToStudy(face1,"Face")
>
> revolution = geompy.MakePrismVecH(face1,axisz,10)
>
> id_prism1 = geompy.addToStudy(revolution ,"Prism1")
>
> and GUI:
>
> Mesh
>
> Launch module SMESH
>
> Creation of a simple Tetrahedral mesh
>
> Creation of Mesh_Fillet_1 : (menu Mesh/Create Mesh)
>
> Geometry: Fillet_1
>
> Assign a set of hypotheses -> Automatic Tetrahedralization
>
> Max. Length hypothesis opened, click "Cancel".
>
> Click 1D Tab, Add "Automatic Length" hypothesis with
>
> Fitness: 0.2
>
> Click Apply and Close for validation.
>
> The value of Finesse is shown in the study tree once the finesse is validated.
>
> It is possible to modify and adjust it.
>
> Compute (right-click on Mesh_Fillet_1)
>
>
>
> but sfepy has some erros:
>
>
> sfepy: left over: ['data_dir', 'verbose', '_filename', '__builtins__', '__packag
>
> e__', '__doc__', '__name__', '__file__']
>
> sfepy: reading mesh (examples\linear_elasticity\Mesh_Partition_Hexa.med)...
>
> Traceback (most recent call last):
>
> File "./simple.py", line 125, in <module>
>
> main()
>
> File "./simple.py", line 118, in main
>
> app = SimpleApp( conf, options, output_prefix )
>
> File "e:\sfepy\sfepy\applications\simple_app.py", line 68, in __init__
>
> **kwargs)
>
> File "e:\sfepy\sfepy\fem\problemDef.py", line 75, in from_conf
>
> mesh = Mesh.from_file(conf.filename_mesh, prefix_dir=conf_dir)
>
> File "e:\sfepy\sfepy\fem\mesh.py", line 435, in from_file
>
> mesh = io.read(mesh, omit_facets=omit_facets)
>
> File "e:\sfepy\sfepy\fem\meshio.py", line 1603, in read
>
> coors = mesh_group.NOE.COO.read()
>
> File "c:\Python26\lib\site-packages\tables\group.py", line 834, in __getattr__
>
>
> return self._f_getChild(name)
>
> File "c:\Python26\lib\site-packages\tables\group.py", line 705, in _f_getChild
>
>
> self._g_checkHasChild(childname)
>
> File "c:\Python26\lib\site-packages\tables\group.py", line 446, in _g_checkHas
>
> Child
>
> % (self._v_pathname, name))
>
> tables.exceptions.NoSuchNodeError: group ``/ENS_MAA/Mesh_1`` does not have a chi
>
> ld named ``NOE``
>
> Closing remaining open files: examples\linear_elasticity\Mesh_Partition_Hexa.med
>
> ... done
>
>
> I hope you have time to help me
> Thank you
>