So, I am taking my first steps in using SfePy. I have two questions,
one about mesh generation and one about the results I am getting.
First, about mesh generation. I am trying to understand the workflow.
What is actually necessary? What is the easiest way to create a mesh
for a really simple part, like a cube or cylinder? I have tinkered
with TetGen and have generated a mesh that way. I was reading through
convert.py and trying to understand what it wants as an input. In the
end, I didn't use convert.py and simply set
fileName_mesh = 'input/first_mesh.1.node'
in my input file. Is this correct? Is it best? Does it actually
read all the other files about by TetGen (.face and .ele), or is it
only using the .node file?
First_mesh.poly is my input to TetGen and the others are the output.
I think it worked.
For my second question, I used the attached mesh files along with the
input script from_Robert.py (something he sent me a while back) and
simply.py and got the following output:
In [1]: run simple.py input/from_Robert.py
sfe: warning: other missing: ['functions', 'modules',
'epbc_[0-9]+|epbcs', 'lcbc_[0-9]+|lcbcs', 'nbc_[0-9]+|nbcs',
'options']
sfe: warning: left over: ['tractionLoad']
sfe: reading mesh...
nodes: 100% |############################################| Time: 00:00:00
elements: 100% |#########################################| Time: 00:00:00
sfe: ...done in 0.04 s
sfe: setting up domain edges...
sfe: ...done in 0.00 s
sfe: setting up domain faces...
sfe: ...done in 0.01 s
sfe: creating regions...
sfe: leaf Top region_2
sfe: leaf Omega region_1000
sfe: leaf Bottom region_1
sfe: ...done in 0.04 s
sfe: equation "balance_of_forces":
sfe: dw_lin_elastic_iso.i1.Omega( solid.lame, v, u )
= dw_surface_ltr.isurf.Top( traction.val, v )
sfe: describing geometries...
sfe: ...done in 0.01 s
sfe: setting up dof connectivities...
sfe: ...done in 0.00 s
sfe: using solvers:
nls: newton
ls: ls
sfe: matrix shape: (156, 156)
sfe: assembling matrix graph...
sfe: ...done in 0.00 s
sfe: matrix structural nonzeros: 4248 (1.75e-01% fill)
sfe: updating materials...
sfe: solid
sfe: traction
TimeStepper
nDigit:
1
t0:
0.0
t1:
1.0
step:
0
time:
0.0
dt:
1.0
times:
[ 0.]
nt:
0.0
nStep:
1
input/from_Robert.py, 69: tractionLoad(), 76
sfe: ...done in 0.00 s
sfe: nls: iter: 0, residual: 0.000000e+00 (rel: 0.000000e+00)
and the attached vtk file. The vtk file seems to say that the force
at each node is 0. That doesn't seem right.
Am I doing something wrong? Are these results actually valid? How
should I proceed?
I was thinking that in terms of material modeling, I would start with
a static compressive load applied to the foam specimen, then a load
that ramps up and watch the displacement and stress in each case.
Start with small stresses and strains and then talk about how to
handle large strains. Does that make sense?
Thanks for your help.
Ryan