Dear Jelle,
Following your link for the FEM sketch<http://svn.gna.org/viewcvs/pythonocc/trunk/src/addons/FEM/FEM.py?rev=576&view=markup>, here are some first comments to help complete this sketch. Once having a more complete view of the work to be done, maybe decisions will have to be hold to decide doing or not this or that item. (all my comments are based on a user point of view) _________________ I understand that you are working on "boundary conditions". I would highlight the following in the part "setting-up the simulation": You suggest the definition 3 functions: "lock", "load", "boundary" I would suggest to define for now 2: "boundary_conditions", and "initial_conditions" A boundary conditions is applied at boundary (of the problem which is in our case represented by the mesh): - temperature given at a face - locked nodes (which you defined previously as a function) (in FEM, the term is more often "constrained nodes") - for CFD (if any), why not a input flow rate? ... Initial conditions are given to a part of the mesh, and have user-defined values for the first increment. These values may then evolves during the simulations: - an initial velocity applied to an object (a car) - a load on a face - stress and plastic strain states to objects that have been stamped in a previous step ... _________________ I see then different items missing in the analysis setup a. how defining contact between objects? b. how defining joints between objects? c. how defining materials properties of objects? d. if this is a dynamic simulation (where inertia of bodies have to be considered), it will be solved over a time range: setup of the "duration" of the simulation (not the time it will take to compute, but the elapsed time it simulates" "should be hidden items" Maybe some "automatically setup according user preferences" options should also be dealt with: e. defining integration schemes / analysis tunings _________________ I would like to comment a bit point b. Defining joints between object is maybe one the "touchest" topic in a simulation framework such as pythonOCC. If there is most often an "easily" identified relationship between set of elements and physical bodies, this is not so true for joints. A joint is for instance a spot weld, a seam weld, a bolt, adhesive bonding... Sometimes, you add mater (for instance additionnal metal for welding), sometimes not (spot weld). The geometrical dimensions of these joints make "their meshing" not obvious, hence a specific modelling, often dedicated to a solver and an analysis. Basically, this means that such entities should be defined geometrically, and the important physical data should be given to a "translator" that will model them as finite element entities. Such a translator could be a specific script commanding SMESH. These "finite element entities" could be elements (beam, hexaedre, shell...) but also equations linking DOFs of nodes (MPC in ABAQUS, AFFE_CHAR_MECA/LIAISON_DDL in Code_Aster). _________________ In the end, concerning shape and topology optimization, I would like to point another method based on R-functions that looks interesting to me (work from Vadim Shapiro). You can have a look of his work in this publication: http://cdl.engr.uconn.edu/asmeda/DAC2006.BestPaper.pdf But also in this one: "shape optimization with topological changes and parametric control" I hope this helps. Please, do not hesitate to tell me of any comments. Best regards, Pierre
_______________________________________________ Pythonocc-users mailing list Pythonocc-users@gna.org https://mail.gna.org/listinfo/pythonocc-users