How to augment a FunctionSpace with additional dofs

10 months ago by
Let's say that we have a Fem space of a BoxMesh:
#define mesh
self.mesh = BoxMesh(Point(0, 0, 0), Point(self.L, self.W, self.W), 10, 3, 3)
#define function space
self.V = VectorFunctionSpace(self.mesh, 'P', 1)

This Fem space represents a beam without translational or rotational degrees of freedom. I want to augment self.V with the additional dofs so that the beam can be moved around in the space. How is this accomplished in Fenics? In particular, which attributes of self.V need to be modified? Is there a terminal command describing self.V and its attributes? How about a command like 'help/man VectorFunctionSpace' (I am aware of the online dolfin doc)? Sorry for the overloaded post and thanks!

A Fem discretization looks like

where \(U_i(t)\)  is the vector of unkowns and \(\phi_i(x)\) are the  known FE basis functions. In the presence of translational and rotational dofs, the first 12 basis functions read
  $\phi_{t,i}\left(x\right)=e_i$ϕt,i(x)=ei  and  $\phi_{r,ij}=x_ie_j,$ϕr,ij=xiej, for  $i,j=1,2,3.$i,j=1,2,3.  
Here \(e_i\) are the standard basis vectors in \(\mathcal{R}^3\).

The Fem space above assumes \(U_i(t) =0 \) for \(i = 1,2,...,12 \).

fenics 2017.1.0 py27_4 conda-forge  4.3.22

Community: FEniCS Project

1 Answer

10 months ago by
The function space is defined local to the mesh; if you move the mesh, the function space moves with it.
Please login to add an answer/comment or follow this question.

Similar posts:
Search »