So, everything is correctly installed and thanks to Robert I can now
work in the directory of my choice. Basically, things are working.
Now I need to understand what the code is actually doing.
My intention is to ask some questions about the attached setup file,
increase my understanding, add some comments to, and possibly have a
good tutorial problem when it's done.
Referring to the attached file, which gets passed to simple.py as an
input, I have the following questions:
The file starts with
field_1 = {
'name' : 'displacement',
'dim' : (3,1),
'domain' : 'Omega',
'bases' : {'Omega' : '3_4_P1'}
}
variable_1 = {
'name' : 'u',
'kind' : 'unknown field',
'field' : 'displacement',
'order' : 0,
}
variable_2 = {
'name' : 'v',
'kind' : 'test field',
'field' : 'displacement',
'dual' : 'u',
}
All 3 of these are displacements, I am trying to understand how they
are related or different. I assume a field is a vector. Maybe the
variables are scalars. If 'u' is one component of the vector field
displacement, where is the degree of freedom specified (i.e. which
component of 'displacement' does 'u' refer to)?
>From the description, it sounds like 'v' is a test field of 'u'. Does
that mean that when 'v' converges, 'u' is the result? Or something
else?
I assume 'Omega' is a domain that includes the whole problem, but that
I can also name domains and some how use different domains for
different purposes. Is this correct?
What does the '3_4_P1' mean?
Does this section of the setup file determine what the output is that
is dumped to the vtk output files? Is the variable 'u' what is
ultimately being sought, reported, and visualized?
What are the units on 'u'?
======================
The next section I have questions about is this:
equations = {
'balance_of_forces' :
"""dw_lin_elastic_iso.i1.Omega( solid.lame, v, u )
= dw_surface_ltr.isurf.Top( traction.val, v )""",
}
material_1 = {
'name' : 'solid',
'mode' : 'here',
'region' : 'Omega',
'lame' : {'lambda' : 1e1, 'mu' : 1e0}, # Lame coefficients.
}
What are lambda and mu and what are their units? Youngs modulus and
mass density per unit length? Something else? I assume it is
something mass related and something stiffness related.
It seems like equations is setting up a force balance on the top of
the material specimen where the load is being applied. Is this
correct?
It seems like this function:
def tractionLoad( ts, coor, region, ig ):
"""ts = TimeStepper, coor = coordinates of field nodes in region."""
import numpy as nm
from sfepy.base.base import pause, debug
nt = ts.nt
val = nm.zeros( (coor.shape[0],), dtype = nm.float64 )
val.fill( 1e-1 * nt )
print val
return {'val' : val}
defines a traction load at all nodes (or maybe on some infinitesimal
volume or area) that is the same at all points and ramping up in time
with a slope of 0.1 per time step. Can this force be an arbitrary
function of time? What are the units of the traction load? Is it
compressive or tensile? What direction is associated with it?
I think that is enough for now. Thanks for your ongoing help and patience.
Ryan