- Thank you received: 0

The forum is in read only mode.

#
complex-valued problem in XFEM

*complex-valued problem in XFEM*was created by

*Shaoqi*

Dear developer,

I would like to solve some Helmholtz equations (complex-valued) with ngsxfem package (X-FEM) method.

As I know, the level set function is interpolated in

I was coding such a problem (for example modified the unf_interf_prob.py by Helmholtz equation in the demos) and I did not get the expected solution, so I am in doubt if ngsxfem is able to treat such a problem.

Another problem is in the ngsxfem, to integrate the Neumann BC on a specific boundary, we can not use the common symbol such f = g *v * ds("left|right") with the label of the boundary, we have to use dCut (Cut differential symbol ? If it is necessary, how can we define a specific boundary by dCut ?

Looking forward to your reply and thanks very much

Shaoqi

I would like to solve some Helmholtz equations (complex-valued) with ngsxfem package (X-FEM) method.

As I know, the level set function is interpolated in

**real valued H1 FE space**, but the solution of the Helmholtz problem is approximated in the**complex H1 space**such Vh = H1(mesh, order, complex=True). Thus, there will be some conflicts?I was coding such a problem (for example modified the unf_interf_prob.py by Helmholtz equation in the demos) and I did not get the expected solution, so I am in doubt if ngsxfem is able to treat such a problem.

Another problem is in the ngsxfem, to integrate the Neumann BC on a specific boundary, we can not use the common symbol such f = g *v * ds("left|right") with the label of the boundary, we have to use dCut (Cut differential symbol ? If it is necessary, how can we define a specific boundary by dCut ?

Looking forward to your reply and thanks very much

Shaoqi

Replied by

*hvwahl*on topic*complex-valued problem in XFEM*
Hi Shaoqi,

dCut is a differential symbol to integrate over domains defined by a level set function. Depending on which domain_type (NEG,IF,POS) you give dCut, you will integrate over the region where the level set function is negative , zero or positive respectively. My guess is that with your ds("left|right") you are trying to integrate on a mesh boundary rather than a level set interface, right? This then does not need any ngsxfem functionality.

Best wishes,

Henry

PS: Try to provide a minimal working example of any problems you have, since it it otherwise very difficult to answer questions.

dCut is a differential symbol to integrate over domains defined by a level set function. Depending on which domain_type (NEG,IF,POS) you give dCut, you will integrate over the region where the level set function is negative , zero or positive respectively. My guess is that with your ds("left|right") you are trying to integrate on a mesh boundary rather than a level set interface, right? This then does not need any ngsxfem functionality.

Best wishes,

Henry

PS: Try to provide a minimal working example of any problems you have, since it it otherwise very difficult to answer questions.

Replied by

*Shaoqi*on topic*complex-valued problem in XFEM*
Thanks for your reply, I fixed the problem !

It is due to the fact that my BCs was not well imposed.

Shaoqi

It is due to the fact that my BCs was not well imposed.

Shaoqi

Replied by

*Shaoqi*on topic*complex-valued problem in XFEM*
Hello,

Sorry to bother you, I have another question concerning the boundaries on the levelset domain.

I want to impose the BCs on each outer boundary separated by the level set function like BC1 and BC2 respectively in attached figure (a figure attached)

[attachment=undefined]bconlevelset.jpg[/attachment]

This kind of BCs can not be imposed directly by the label of the boundary since for example the top and bottom bc will be assigned with two different condition.

It seems that the dCut symbol have to be used to assign these two boundaries with NEG and POS label. I knew how to define the subdomain with dCut, but confused with this kind of "sub boundaries" .

Could you give me some hint, thanks !

Best

Shaoqi

Sorry to bother you, I have another question concerning the boundaries on the levelset domain.

I want to impose the BCs on each outer boundary separated by the level set function like BC1 and BC2 respectively in attached figure (a figure attached)

[attachment=undefined]bconlevelset.jpg[/attachment]

This kind of BCs can not be imposed directly by the label of the boundary since for example the top and bottom bc will be assigned with two different condition.

It seems that the dCut symbol have to be used to assign these two boundaries with NEG and POS label. I knew how to define the subdomain with dCut, but confused with this kind of "sub boundaries" .

Could you give me some hint, thanks !

Best

Shaoqi

This browser does not support PDFs. Please download the PDF to view it: Download PDF

##### Attachments:

Last edit: 3 years 4 months ago by Shaoqi.

Replied by

*hvwahl*on topic*complex-valued problem in XFEM*
Hi Shaoqi,

as far as I am aware, integrating over the part of the mesh boundary where a given level set function is POS or NEG is currently not implemented.

Best wishes,

Henry

PS: There appears to have been a problem with your attachments.

as far as I am aware, integrating over the part of the mesh boundary where a given level set function is POS or NEG is currently not implemented.

Best wishes,

Henry

PS: There appears to have been a problem with your attachments.

Replied by

*Shaoqi*on topic*complex-valued problem in XFEM*
Thanks for your reply !

I saw in some tutorial, we can use GetFacetsWithNeighborTypes(mesh,a=ci.GetElementsOfType(HASNEG),

b=ci.GetElementsOfType(IF))

to define some boundary, but I am not sure it works in my case.

I update the attachment.

I saw in some tutorial, we can use GetFacetsWithNeighborTypes(mesh,a=ci.GetElementsOfType(HASNEG),

b=ci.GetElementsOfType(IF))

to define some boundary, but I am not sure it works in my case.

I update the attachment.

This browser does not support PDFs. Please download the PDF to view it: Download PDF

##### Attachments:

Time to create page: 0.112 seconds