# Get a modified displacement vector

**URL:** <https://fenicsproject.discourse.group/t/get-a-modified-displacement-vector/8614>\
**Category:** dolfinx\
**Created:** [June 24, 2022, 12:30pm UTC](https://fenicsproject.discourse.group/t/get-a-modified-displacement-vector/8614 "2022-06-24T12:30:57Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![festv](https://avatars.discourse-cdn.com/v4/letter/f/ce7236/32.png) [@festv](https://fenicsproject.discourse.group/u/festv)\
**Post date:** [June 24, 2022, 12:30pm UTC](https://fenicsproject.discourse.group/t/get-a-modified-displacement-vector/8614/1 "2022-06-24T12:30:57Z")

</div>

Hello,

I have a function that computes a bundary such as:

```auto
def mors(x):
    return np.logical_and(x[0]> L-L_MORS/2, 
                         np.logical_or(np.isclose(x[1], D_MORS/2),
                                       np.isclose(x[1], -D_MORS/2)
                                      )
                         )

```

and I would like to get a modified displacement `Function` `ud` that have the same values as the displacement `Function` `u` on this boundary and is zero elsewhere. I thought about using `interpolate` but is there a more elegant/direct way?  
Thanks a lot.

---

<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 24, 2022, 12:53pm UTC](https://fenicsproject.discourse.group/t/get-a-modified-displacement-vector/8614/2 "2022-06-24T12:53:13Z")

</div>

Use `dirichletbc` and `dolfinx.fem.set_bc`, see: [DirichletBC with mesh tags in dolfinx - weird behavior - #2 by dokken](https://fenicsproject.discourse.group/t/dirichletbc-with-mesh-tags-in-dolfinx-weird-behavior/3036/2)

---

<div class="post-metadata">

**Author:** ![festv](https://avatars.discourse-cdn.com/v4/letter/f/ce7236/32.png) [@festv](https://fenicsproject.discourse.group/u/festv)\
**Post date:** [June 24, 2022, 1:03pm UTC](https://fenicsproject.discourse.group/t/get-a-modified-displacement-vector/8614/3 "2022-06-24T13:03:57Z")

</div>

i see that you use `locate_dofs_topological`. Shouldn’t I use `locate_dofs_geometrical` with my boundary function `mors`?  
thanks again.

---

<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 24, 2022, 1:19pm UTC](https://fenicsproject.discourse.group/t/get-a-modified-displacement-vector/8614/4 "2022-06-24T13:19:49Z")

</div>

You can of course use `locate_dofs_geometrical` if you want to do that.  
You can also use `locate_boundary_entities` with your `mors` function, and then use `locate_dofs_topological`.
