# Issue with assemble\_matrix & quadrature

**URL:** <https://fenicsproject.discourse.group/t/issue-with-assemble-matrix-quadrature/8551>\
**Category:** dolfinx\
**Created:** [June 15, 2022, 4:04pm UTC](https://fenicsproject.discourse.group/t/issue-with-assemble-matrix-quadrature/8551 "2022-06-15T16:04:32Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![acino](https://avatars.discourse-cdn.com/v4/letter/a/4bbf92/32.png) [@acino](https://fenicsproject.discourse.group/u/acino)\
**Post date:** [June 15, 2022, 4:04pm UTC](https://fenicsproject.discourse.group/t/issue-with-assemble-matrix-quadrature/8551/1 "2022-06-15T16:04:32Z")

</div>

All,  
I’m new of fenicsx and after the basics, I’m trying to replicate this well known tutorial on plasticity: [Elasto-plastic analysis of a 2D von Mises material — Numerical tours of continuum mechanics using FEniCS master documentation](https://comet-fenics.readthedocs.io/en/latest/demo/2D_plasticity/vonMises_plasticity.py.html) .

I’ve slightly modified the test case to use a bar subject to traction.

I currently use dolfinx 0.4.2.0 and I get stuck when I try convert “_assemble\_ system_” function.

I used _assemble\_matrix_, and _assemble\_vector_ to create my bilinear and linear forms but I get the following error.

```auto
 File "error.py", line 65, in <module>
    A = fem.assemble_matrix(a_Newton)
  File "spack/var/spack/environments/fenics-real/.spack-env/._view/cccxafi6cfibntvlu62rgazanffzvvxu/lib/python3.9/functools.py", line 888, in wrapper
    return dispatch(args[0]. __class__ )(*args, **kw)
  File "spack/var/spack/environments/fenics-real/.spack-env/view/lib/python3.9/site-packages/dolfinx/fem/assemble.py", line 229, in assemble_matrix
    A = create_matrix(a)
  File "spack/var/spack/environments/fenics-real/.spack-env/view/lib/python3.9/site-packages/dolfinx/fem/assemble.py", line 98, in create_matrix
    sp = dolfinx.fem.create_sparsity_pattern(a)
  File "/gpfs/rr/rrfea/rruk/home/acino/myApps/spack/var/spack/environments/fenics-real/.spack-env/view/lib/python3.9/site-packages/dolfinx/fem/ __init__.py", line 34, in create_sparsity_pattern
    topology = a.mesh.topology
AttributeError: 'Form' object has no attribute 'mesh'

```

Here are the relevant part of the code up to when the error occur

```auto
import numpy as np
import os
import ufl
from petsc4py.PETSc import ScalarType
from petsc4py import PETSc
from mpi4py import MPI
from dolfinx import mesh, fem, plot, io

L = 100; W = 10
E =210000 
nu = 0.3
lmbda = E*nu/(1+nu)/(1-2*nu)
mu = E/2./(1+nu)
Et = E/100. # tangent modulus
H = E*Et/(E-Et)

comm = MPI.COMM_WORLD
domain = mesh.create_box(comm, [np.array([0,0,0]), np.array([L, W, W])],
                  [2,2,4], cell_type=mesh.CellType.tetrahedron )

deg_u = 2
deg_stress = 2

V = fem.VectorFunctionSpace(domain, ("CG", deg_u ))

v = ufl.TrialFunction(V)
u_ = ufl.TestFunction(V)

We = ufl.VectorElement("Quadrature",domain.ufl_cell(),degree=deg_stress,dim=6,quad_scheme='default')
W = fem.FunctionSpace(domain, We)
n_elas = fem.Function(W)

W0e = ufl.FiniteElement("Quadrature",domain.ufl_cell(),degree=deg_stress,quad_scheme='default')
W0 = fem.FunctionSpace(domain, W0e)
beta = fem.Function(W0)

u = fem.Function(V, name="Total displacement")

def eps(v):
    e = ufl.sym(ufl.grad(v))
    return ufl.as_tensor([[e[0, 0], e[0, 1], e[0, 2]],
                          [e[0, 1], e[1, 1], e[0, 2]],
                          [e[0, 2], e[1, 2], e[2, 2]]])
def sigma(eps_el):
    return lmbda * ufl.tr(eps_el) * ufl.Identity(u.geometric_dimension()) + 2*mu*eps_el

def as_3D_tensor(X):
    return ufl.as_tensor([[X[0], X[3], X[4]],
                      [X[3], X[1], X[5]],
                      [X[4], X[5], X[2]]])

def sigma_tang(e):
    N_elas = as_3D_tensor(n_elas)
    return sigma(e) - 3*mu*(3*mu/(3*mu+H)-beta)*ufl.inner(N_elas, e)*N_elas-2*mu*beta*ufl.dev(e)

metadata = {"quadrature_degree": deg_stress, "quadrature_scheme": "default"}
dxm = ufl.dx(metadata=metadata)
a_Newton = ufl.inner(eps(v), sigma_tang(eps(u_)))*dxm

A = fem.assemble_matrix(a_Newton)

```

---

<div class="post-metadata">

**Author:** ![dokken](https://yyz2.discourse-cdn.com/free1/user_avatar/fenicsproject.discourse.group/dokken/32/1560_2.png) [@dokken](https://fenicsproject.discourse.group/u/dokken)\
**Post date:** [June 15, 2022, 4:52pm UTC](https://fenicsproject.discourse.group/t/issue-with-assemble-matrix-quadrature/8551/2 "2022-06-15T16:52:40Z")

</div>

> [@acino](#):
>
> `A = fem.assemble_matrix(a_Newton)`

This should be changed to:

```python
A = fem.petsc.assemble_matrix(fem.form(a_Newton))

```
