# About definition

**URL:** <https://community.freefem.org/t/about-definition/3586>\
**Category:** General Discussion\
**Created:** [November 18, 2024, 1:53am UTC](https://community.freefem.org/t/about-definition/3586 "2024-11-18T01:53:07Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![raphael](https://avatars.discourse-cdn.com/v4/letter/r/edb3f5/32.png) [@raphael](https://community.freefem.org/u/raphael)\
**Post date:** [November 18, 2024, 1:53am UTC](https://community.freefem.org/t/about-definition/3586/1 "2024-11-18T01:53:07Z")

</div>

I would like to ask how to define a three-dimensional curl operator in FreeFEM++ so that it can be used later in “solve…= int3d curlu\*curlv”  
sorry guys 🥲 i am a new guy

---

<div class="post-metadata">

**Author:** ![julienG](https://yyz2.discourse-cdn.com/flex030/user_avatar/community.freefem.org/julieng/32/222_2.png) [@julienG](https://community.freefem.org/u/julienG)\
**Post date:** [November 20, 2024, 6:47am UTC](https://community.freefem.org/t/about-definition/3586/2 "2024-11-20T06:47:00Z")

</div>

You can use either of these

> macro Curl(ux,uy,uz)[dy(uz)-dz(uy), dz(ux)-dx(uz), dx(uy)-dy(ux)] //

or

> macro curl(u) [dy(u#z)-dz(u#y), dz(u#x)-dx(u#z), dx(u#y)-dy(u#x)] //

usage is

> fespace VhGF(Th, [P2,P2,P2]);  
> VhGF [Ax,Ay,Az],[Bx,By,Bz];;  
> [Bx,By,Bz]=Curl(Ax,Ay,Az]); // method 1  
> [Bx,By,Bz]=curl(A);//method 2
