How to augment a FunctionSpace with additional dofs


93
views
0
9 weeks 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

  $u_h=\sum_{i=1}^NU_i\left(t\right)\phi_i\left(x\right)$uh=i=1NUi(t)ϕi(x) 
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


0
9 weeks ago by
pf4d  
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 »