Subject: [Syfi-dev] [HG syfi] Updates to SFC manual.

From: [email-masked] (SyFi)
Date: Wed, 22 Aug 2007 11:51:18 +0200 (CEST)

One or more new changesets pushed to the primary SyFi repository.
A short summary of the last three changesets is included below.

changeset:   690:26eb8aef82270c6e9853c91de4869a0fe0dab97a
tag:         tip
user:        "Martin Sandve Alnæs <[email-masked]>"
date:        Wed Aug 22 11:52:17 2007 +0200
files:       doc/manual/syfi-user-manual.pdf doc/manual/syfi-user-manual.tex python/sfc/TODO.TXT python/sfc/UserForm.py
description:
Updates to SFC manual.

changeset:   689:709957483f840e4fc7010f09684f2ad574969f4b
user:        "Martin Sandve Alnæs <[email-masked]>"
date:        Tue Aug 21 14:27:38 2007 +0200
files:       python/sfc/common/__init__.py
description:
Missing file.

changeset:   688:09e52c5235ac84abddf6b717701fb80d61fc679d
user:        "Martin Sandve Alnæs <[email-masked]>"
date:        Tue Aug 21 14:26:40 2007 +0200
files:       python/ufccodegen/__init__.py python/ufccodegen/affine_map.py python/ufccodegen/clean.sh python/ufccodegen/code_generator.py python/ufccodegen/dof_map.py python/ufccodegen/dof_map_discontinuous.py python/ufccodegen/dof_map_simplex.py python/ufccodegen/finite_element.py python/ufccodegen/finite_element_simplex.py python/ufccodegen/form.py python/ufccodegen/form_simplex.py python/ufccodegen/forms.py python/ufccodegen/function.py python/ufccodegen/logger.py python/ufccodegen/nonlinear_form.py python/ufccodegen/options.py python/ufccodegen/quad_tables.py python/ufccodegen/quadrature.py python/ufccodegen/sign_on_basis.py python/ufccodegen/strings.py python/ufccodegen/symbolic_utils.py python/ufccodegen/ufc_code_gen.py
description:
Removed ufccodegen, should've been removed a long time ago???

----------------------------------------------------------------------
For more details, visit http://www.fenics.org/hg/syfi

---

From: Kent-Andre Mardal <[email-masked]>
Date: Wed, 22 Aug 2007 14:21:06 +0200

For the example with the nonlinear Jacobian I suggest nonlinear
convection + diffusion: 

In the "old syntax" this was like: 

from swiginac import *
from SyFi import * 
from SFC.symbolic_utils import grad  

def sum(u_char,fe): 
    ujs = symbolic_matrix(1,fe.nbf(), u_char) 
    u = 0 
    for j in range(0,fe.nbf()): 
        u += ujs.op(j)*fe.N(j) 
    u = u.evalm()
    return u,ujs 

initSyFi(2)
nsd = cvar.nsd = 2 
polygon = ReferenceTriangle()
fe = VectorLagrange(polygon, 2)

# create sum u_i N_i
u, ujs = sum("u", fe) 

Jinv = symbolic_matrix(2,2,"Jinv")

for i in range(0,fe.nbf()): 

  # compute diffusion term 
  fi_diffusion = inner(grad(u, Jinv), grad(fe.N(i), Jinv)) 

  # compute convection term 
  uxgradu = (u.transpose()*grad(u, Jinv))  
  fi_convection = inner(uxgradu, fe.N(i), True) 

  fi = fi_diffusion + fi_convection

  Fi = polygon.integrate(fi) 

  for j in range(0,fe.nbf()): 
    # differentiate to get the Jacobian 
    uj = ujs.op(j) 
    Jij = diff(Fi, uj) 
    print "J[%d,%d]=%s;\n"%(i,j,Jij.evalf().printc())

ons, 22.08.2007 kl. 11.51 +0200, skrev SyFi:
> _______________________________________________
> SyFi-dev mailing list
> [email-masked]
> http://fenics.org/mailman/listinfo/syfi-dev