Fem-fenics: Difference between revisions

1,704 bytes added ,  6 September 2013
no edit summary
No edit summary
No edit summary
Line 255: Line 255:
plot(u)
plot(u)
interactive()
interactive()
</syntaxhighlight>}}
  </div>
</div>
<div style="clear:both"></div>
=== Mixed Formulation for Poisson Equation ===
This time we compare the code with the c++ version of DOLFIN.
{{Code|HyperElasticity Problem: the ufl file|<syntaxhighlight lang="octave" style="font-size:13px">
# Function spaces
element = VectorElement("Lagrange", tetrahedron, 1)
# Trial and test functions
du = TrialFunction(element)    # Incremental displacement
v  = TestFunction(element)      # Test function
# Functions
u = Coefficient(element)        # Displacement from previous iteration
B = Coefficient(element)        # Body force per unit volume
T = Coefficient(element)        # Traction force on the boundary
# Kinematics
I = Identity(element.cell().d)  # Identity tensor
F = I + grad(u)                # Deformation gradient
C = F.T*F                      # Right Cauchy-Green tensor
# Invariants of deformation tensors
Ic = tr(C)
J  = det(F)
# Elasticity parameters
mu    = Constant(tetrahedron)
lmbda = Constant(tetrahedron)
# Stored strain energy density (compressible neo-Hookean model)
psi = (mu/2)*(Ic - 3) - mu*ln(J) + (lmbda/2)*(ln(J))**2
# Total potential energy
Pi = psi*dx - inner(B, u)*dx - inner(T, u)*ds
# First variation of Pi (directional derivative about u in the direction of v)
F = derivative(Pi, u, v)
# Compute Jacobian of F
J = derivative(F, u, du)
</syntaxhighlight>}}
<div style="width: 100%;">
  <div style="float:left; width: 48%">
{{Code|Define Poisson problem|<syntaxhighlight lang="octave" style="font-size:13px">
</syntaxhighlight>}}
  </div>
  <div style="float:right; width: 48%">
{{Code|Define Poisson problem|<syntaxhighlight lang="c++" style="font-size:13px">


</syntaxhighlight>}}
</syntaxhighlight>}}
60

edits