coupler test can not work well
Hi, MOAB Developer, I code a very simple test , please see the attachment. The source mesh is following: (-1, 1) ------------(0, 1)--------------(1, 1) | | | | | | (-1, 0)-------------(0, 0)-------------(1, 0) | | | | | | (-1, -1)------------(0, -1)------------(1, -1) In every quad, there is a constant. For example, [1.0, 2.0, 2.0, 3.0] ( from left to right and bottom to up) . I just change point (0, 0) as (0.3, 0.4) to get the target mesh. I can compile it, but when I run it, it throw a segment error. This is my first time to use mb coupler tool, and not sure what mistake I have made, so I need your help. Thanks very much. Best Huayi 2015-07-09 9:56 GMT+08:00 魏华祎 <[email protected]>:
My application mesh is a block structured mesh, which vertices will move and hence the mesh quality will become bad, so I need to optimize the location of mesh vertices. Then I need to tansfer data from old mesh to new mesh. That's my problem. My program is parallel and there is a structured quad mesh on each processor. By the way, my program is not based on Moab. But I want to use the coupler tool in moab. So fristly I need transfer my mesh into Moab.
At present, I explicityly transfer my every block mesh to the repesentation of vertices and coonecicity, just as your suggection. I am writing a test first. Dose you have better idea about it?
2015-07-09 9:36 GMT+08:00 Vijay S. Mahadevan <[email protected]>:
If you are asking about the ScdBox structure, I'm unsure. I don't think we have a test for this. However, if you explicitly represent the vertices and connectivity, usage of a structured grid is transparent to MOAB interfaces and everything should work as is.
What type of problems are you solving ? Are you using a logically structured or performing stencil computations ?
Vijay
On Wed, Jul 8, 2015 at 8:33 PM, 魏华祎 <[email protected]> wrote:
Hi, Vijay,
Thanks for your reply. So it also work on Structured Mesh Representation of Moab?
Best
Huayi
2015-07-09 6:50 GMT+08:00 Vijay S. Mahadevan <[email protected]>:
No it should work for any dimension and is not restricted to 3-D. Have you tried using the coupler for your problem ? If you have issues, send us a test case and the meshes. You can also use mbcoupler_test to verify whether the solution defined on your source mesh is being transferred correctly onto the target mesh.
Vijay
On Wed, Jul 8, 2015 at 5:33 PM, 魏华祎 <[email protected]> wrote:
Hi, There,
I am trying to use Moab Coupler transfer data between 2d meshes, but I am not sure if it works on 2d mesh.
Please give me some suggestion, thanks very much.
Best
Huayi
you used a different scenario parallel comm needs to know what is the source set If you load from file, that gets populated automatically; in your case, you create mesh in memory so one issue: pc0->partition_sets().insert(src_mesh); also, you delete pc0 before mb, also mbc needs to be new too, otherwise it crashes (basically, mbc will be deleted when it goes out of scope, by that time mb and pc0 are gone) see attached t1.cpp, it works as expected ________________________________________ From: [email protected] [[email protected]] on behalf of ��t [[email protected]] Sent: Thursday, July 09, 2015 8:44 AM To: Vijay S. Mahadevan Cc: MOAB Dev Subject: [MOAB-dev] coupler test can not work well Hi, MOAB Developer, I code a very simple test , please see the attachment. The source mesh is following: (-1, 1) ------------(0, 1)--------------(1, 1) | | | | | | (-1, 0)-------------(0, 0)-------------(1, 0) | | | | | | (-1, -1)------------(0, -1)------------(1, -1) In every quad, there is a constant. For example, [1.0, 2.0, 2.0, 3.0] ( from left to right and bottom to up) . I just change point (0, 0) as (0.3, 0.4) to get the target mesh. I can compile it, but when I run it, it throw a segment error. This is my first time to use mb coupler tool, and not sure what mistake I have made, so I need your help. Thanks very much. Best Huayi 2015-07-09 9:56 GMT+08:00 ��t <[email protected]>:
My application mesh is a block structured mesh, which vertices will move and hence the mesh quality will become bad, so I need to optimize the location of mesh vertices. Then I need to tansfer data from old mesh to new mesh. That's my problem. My program is parallel and there is a structured quad mesh on each processor. By the way, my program is not based on Moab. But I want to use the coupler tool in moab. So fristly I need transfer my mesh into Moab.
At present, I explicityly transfer my every block mesh to the repesentation of vertices and coonecicity, just as your suggection. I am writing a test first. Dose you have better idea about it?
2015-07-09 9:36 GMT+08:00 Vijay S. Mahadevan <[email protected]>:
If you are asking about the ScdBox structure, I'm unsure. I don't think we have a test for this. However, if you explicitly represent the vertices and connectivity, usage of a structured grid is transparent to MOAB interfaces and everything should work as is.
What type of problems are you solving ? Are you using a logically structured or performing stencil computations ?
Vijay
On Wed, Jul 8, 2015 at 8:33 PM, ��t <[email protected]> wrote:
Hi, Vijay,
Thanks for your reply. So it also work on Structured Mesh Representation of Moab?
Best
Huayi
2015-07-09 6:50 GMT+08:00 Vijay S. Mahadevan <[email protected]>:
No it should work for any dimension and is not restricted to 3-D. Have you tried using the coupler for your problem ? If you have issues, send us a test case and the meshes. You can also use mbcoupler_test to verify whether the solution defined on your source mesh is being transferred correctly onto the target mesh.
Vijay
On Wed, Jul 8, 2015 at 5:33 PM, ��t <[email protected]> wrote:
Hi, There,
I am trying to use Moab Coupler transfer data between 2d meshes, but I am not sure if it works on 2d mesh.
Please give me some suggestion, thanks very much.
Best
Huayi
Hi, Lulian, Thanks very much for your help. It works well now. I have another question, does mb coupler consider the conservation law? For example, mass conservation. In every quad of my mesh, there is a constant mass density. When I tansfer it from old mesh to new mesh, I need to keep the mass conservation as much as possible. In the above test, it is just a points interpolation. So I need to do more work to keep the mass conservation, right? Thanks again. Best Huayi 2015-07-09 22:47 GMT+08:00 Grindeanu, Iulian R. <[email protected]>:
you used a different scenario parallel comm needs to know what is the source set
If you load from file, that gets populated automatically; in your case, you create mesh in memory
so one issue: pc0->partition_sets().insert(src_mesh);
also, you delete pc0 before mb, also mbc needs to be new too, otherwise it crashes (basically, mbc will be deleted when it goes out of scope, by that time mb and pc0 are gone)
see attached t1.cpp, it works as expected
________________________________________ From: [email protected] [[email protected]] on behalf of 魏华祎 [[email protected]] Sent: Thursday, July 09, 2015 8:44 AM To: Vijay S. Mahadevan Cc: MOAB Dev Subject: [MOAB-dev] coupler test can not work well
Hi, MOAB Developer,
I code a very simple test , please see the attachment. The source mesh is following:
(-1, 1) ------------(0, 1)--------------(1, 1) | | | | | | (-1, 0)-------------(0, 0)-------------(1, 0) | | | | | | (-1, -1)------------(0, -1)------------(1, -1)
In every quad, there is a constant. For example, [1.0, 2.0, 2.0, 3.0] ( from left to right and bottom to up) .
I just change point (0, 0) as (0.3, 0.4) to get the target mesh.
I can compile it, but when I run it, it throw a segment error.
This is my first time to use mb coupler tool, and not sure what mistake I have made, so I need your help.
Thanks very much.
Best
Huayi
2015-07-09 9:56 GMT+08:00 魏华祎 <[email protected]>:
My application mesh is a block structured mesh, which vertices will move and hence the mesh quality will become bad, so I need to optimize the location of mesh vertices. Then I need to tansfer data from old mesh to new mesh. That's my problem. My program is parallel and there is a structured quad mesh on each processor. By the way, my program is not based on Moab. But I want to use the coupler tool in moab. So fristly I need transfer my mesh into Moab.
At present, I explicityly transfer my every block mesh to the repesentation of vertices and coonecicity, just as your suggection. I am writing a test first. Dose you have better idea about it?
2015-07-09 9:36 GMT+08:00 Vijay S. Mahadevan <[email protected]>:
If you are asking about the ScdBox structure, I'm unsure. I don't think we have a test for this. However, if you explicitly represent the vertices and connectivity, usage of a structured grid is transparent to MOAB interfaces and everything should work as is.
What type of problems are you solving ? Are you using a logically structured or performing stencil computations ?
Vijay
On Wed, Jul 8, 2015 at 8:33 PM, 魏华祎 <[email protected]> wrote:
Hi, Vijay,
Thanks for your reply. So it also work on Structured Mesh Representation of Moab?
Best
Huayi
2015-07-09 6:50 GMT+08:00 Vijay S. Mahadevan <[email protected]>:
No it should work for any dimension and is not restricted to 3-D. Have you tried using the coupler for your problem ? If you have issues, send us a test case and the meshes. You can also use mbcoupler_test to verify whether the solution defined on your source mesh is being transferred correctly onto the target mesh.
Vijay
On Wed, Jul 8, 2015 at 5:33 PM, 魏华祎 <[email protected]> wrote:
Hi, There,
I am trying to use Moab Coupler transfer data between 2d meshes, but I am not sure if it works on 2d mesh.
Please give me some suggestion, thanks very much.
Best
Huayi
so you will probably want to look over normalization method (implemented in coupler too) In order to have conservation, you need to calculate integrals, on both target and source "normalization" will compute a factor (with which you multiply the target "computed" field) such as the target integral is equal to the source integral Some of this work can be done with the coupler, if you understand what it does, and if you like the formula used for integration. If you do not like them, or if your "conservation" is defined differently, you may need to implement your own. Iulian ________________________________________ From: ��t [[email protected]] Sent: Thursday, July 09, 2015 5:31 PM To: Grindeanu, Iulian R. Cc: Vijay S. Mahadevan; MOAB Dev Subject: Re: [MOAB-dev] coupler test can not work well Hi, Lulian, Thanks very much for your help. It works well now. I have another question, does mb coupler consider the conservation law? For example, mass conservation. In every quad of my mesh, there is a constant mass density. When I tansfer it from old mesh to new mesh, I need to keep the mass conservation as much as possible. In the above test, it is just a points interpolation. So I need to do more work to keep the mass conservation, right? Thanks again. Best Huayi 2015-07-09 22:47 GMT+08:00 Grindeanu, Iulian R. <[email protected]>:
you used a different scenario parallel comm needs to know what is the source set
If you load from file, that gets populated automatically; in your case, you create mesh in memory
so one issue: pc0->partition_sets().insert(src_mesh);
also, you delete pc0 before mb, also mbc needs to be new too, otherwise it crashes (basically, mbc will be deleted when it goes out of scope, by that time mb and pc0 are gone)
see attached t1.cpp, it works as expected
________________________________________ From: [email protected] [[email protected]] on behalf of ��t [[email protected]] Sent: Thursday, July 09, 2015 8:44 AM To: Vijay S. Mahadevan Cc: MOAB Dev Subject: [MOAB-dev] coupler test can not work well
Hi, MOAB Developer,
I code a very simple test , please see the attachment. The source mesh is following:
(-1, 1) ------------(0, 1)--------------(1, 1) | | | | | | (-1, 0)-------------(0, 0)-------------(1, 0) | | | | | | (-1, -1)------------(0, -1)------------(1, -1)
In every quad, there is a constant. For example, [1.0, 2.0, 2.0, 3.0] ( from left to right and bottom to up) .
I just change point (0, 0) as (0.3, 0.4) to get the target mesh.
I can compile it, but when I run it, it throw a segment error.
This is my first time to use mb coupler tool, and not sure what mistake I have made, so I need your help.
Thanks very much.
Best
Huayi
2015-07-09 9:56 GMT+08:00 ��t <[email protected]>:
My application mesh is a block structured mesh, which vertices will move and hence the mesh quality will become bad, so I need to optimize the location of mesh vertices. Then I need to tansfer data from old mesh to new mesh. That's my problem. My program is parallel and there is a structured quad mesh on each processor. By the way, my program is not based on Moab. But I want to use the coupler tool in moab. So fristly I need transfer my mesh into Moab.
At present, I explicityly transfer my every block mesh to the repesentation of vertices and coonecicity, just as your suggection. I am writing a test first. Dose you have better idea about it?
2015-07-09 9:36 GMT+08:00 Vijay S. Mahadevan <[email protected]>:
If you are asking about the ScdBox structure, I'm unsure. I don't think we have a test for this. However, if you explicitly represent the vertices and connectivity, usage of a structured grid is transparent to MOAB interfaces and everything should work as is.
What type of problems are you solving ? Are you using a logically structured or performing stencil computations ?
Vijay
On Wed, Jul 8, 2015 at 8:33 PM, ��t <[email protected]> wrote:
Hi, Vijay,
Thanks for your reply. So it also work on Structured Mesh Representation of Moab?
Best
Huayi
2015-07-09 6:50 GMT+08:00 Vijay S. Mahadevan <[email protected]>:
No it should work for any dimension and is not restricted to 3-D. Have you tried using the coupler for your problem ? If you have issues, send us a test case and the meshes. You can also use mbcoupler_test to verify whether the solution defined on your source mesh is being transferred correctly onto the target mesh.
Vijay
On Wed, Jul 8, 2015 at 5:33 PM, ��t <[email protected]> wrote:
Hi, There,
I am trying to use Moab Coupler transfer data between 2d meshes, but I am not sure if it works on 2d mesh.
Please give me some suggestion, thanks very much.
Best
Huayi
Huayi, we are in the process of redesigning several aspects of the coupler to include more robust projection, normalization and conservation algorithms. There is currently global and subset based normalization, which as the name specifies only aims to rescale the solution data globally or patch-wise. If you have intricate requirements on conservation of data, this might not satisfy your criteria. Or if you want to do local mass conservation on elements, this might still not be sufficient without writing extra code. We are always happy to take in contributions if you want to add conservation techniques to the solution transfer capability. Vijay On Thu, Jul 9, 2015 at 5:44 PM, Grindeanu, Iulian R. <[email protected]> wrote:
so you will probably want to look over normalization method (implemented in coupler too) In order to have conservation, you need to calculate integrals, on both target and source
"normalization" will compute a factor (with which you multiply the target "computed" field) such as the target integral is equal to the source integral
Some of this work can be done with the coupler, if you understand what it does, and if you like the formula used for integration.
If you do not like them, or if your "conservation" is defined differently, you may need to implement your own.
Iulian
________________________________________ From: 魏华祎 [[email protected]] Sent: Thursday, July 09, 2015 5:31 PM To: Grindeanu, Iulian R. Cc: Vijay S. Mahadevan; MOAB Dev Subject: Re: [MOAB-dev] coupler test can not work well
Hi, Lulian,
Thanks very much for your help. It works well now.
I have another question, does mb coupler consider the conservation law? For example, mass conservation.
In every quad of my mesh, there is a constant mass density. When I tansfer it from old mesh to new mesh, I need to keep the mass conservation as much as possible.
In the above test, it is just a points interpolation. So I need to do more work to keep the mass conservation, right?
Thanks again.
Best
Huayi
2015-07-09 22:47 GMT+08:00 Grindeanu, Iulian R. <[email protected]>:
you used a different scenario parallel comm needs to know what is the source set
If you load from file, that gets populated automatically; in your case, you create mesh in memory
so one issue: pc0->partition_sets().insert(src_mesh);
also, you delete pc0 before mb, also mbc needs to be new too, otherwise it crashes (basically, mbc will be deleted when it goes out of scope, by that time mb and pc0 are gone)
see attached t1.cpp, it works as expected
________________________________________ From: [email protected] [[email protected]] on behalf of 魏华祎 [[email protected]] Sent: Thursday, July 09, 2015 8:44 AM To: Vijay S. Mahadevan Cc: MOAB Dev Subject: [MOAB-dev] coupler test can not work well
Hi, MOAB Developer,
I code a very simple test , please see the attachment. The source mesh is following:
(-1, 1) ------------(0, 1)--------------(1, 1) | | | | | | (-1, 0)-------------(0, 0)-------------(1, 0) | | | | | | (-1, -1)------------(0, -1)------------(1, -1)
In every quad, there is a constant. For example, [1.0, 2.0, 2.0, 3.0] ( from left to right and bottom to up) .
I just change point (0, 0) as (0.3, 0.4) to get the target mesh.
I can compile it, but when I run it, it throw a segment error.
This is my first time to use mb coupler tool, and not sure what mistake I have made, so I need your help.
Thanks very much.
Best
Huayi
2015-07-09 9:56 GMT+08:00 魏华祎 <[email protected]>:
My application mesh is a block structured mesh, which vertices will move and hence the mesh quality will become bad, so I need to optimize the location of mesh vertices. Then I need to tansfer data from old mesh to new mesh. That's my problem. My program is parallel and there is a structured quad mesh on each processor. By the way, my program is not based on Moab. But I want to use the coupler tool in moab. So fristly I need transfer my mesh into Moab.
At present, I explicityly transfer my every block mesh to the repesentation of vertices and coonecicity, just as your suggection. I am writing a test first. Dose you have better idea about it?
2015-07-09 9:36 GMT+08:00 Vijay S. Mahadevan <[email protected]>:
If you are asking about the ScdBox structure, I'm unsure. I don't think we have a test for this. However, if you explicitly represent the vertices and connectivity, usage of a structured grid is transparent to MOAB interfaces and everything should work as is.
What type of problems are you solving ? Are you using a logically structured or performing stencil computations ?
Vijay
On Wed, Jul 8, 2015 at 8:33 PM, 魏华祎 <[email protected]> wrote:
Hi, Vijay,
Thanks for your reply. So it also work on Structured Mesh Representation of Moab?
Best
Huayi
2015-07-09 6:50 GMT+08:00 Vijay S. Mahadevan <[email protected]>:
No it should work for any dimension and is not restricted to 3-D. Have you tried using the coupler for your problem ? If you have issues, send us a test case and the meshes. You can also use mbcoupler_test to verify whether the solution defined on your source mesh is being transferred correctly onto the target mesh.
Vijay
On Wed, Jul 8, 2015 at 5:33 PM, 魏华祎 <[email protected]> wrote:
Hi, There,
I am trying to use Moab Coupler transfer data between 2d meshes, but I am not sure if it works on 2d mesh.
Please give me some suggestion, thanks very much.
Best
Huayi
Got it. Yes, I'd like to make contribution to Moab (or Meshkit), which is a nice powerful tool and can make my research easier. My research interesting include mesh generation and optimization, finite element superconvergence. I have a plan to code the algorithms I am using into moab or meshkit. Thanks for your help again. 2015-07-10 6:51 GMT+08:00 Vijay S. Mahadevan <[email protected]>:
Huayi, we are in the process of redesigning several aspects of the coupler to include more robust projection, normalization and conservation algorithms. There is currently global and subset based normalization, which as the name specifies only aims to rescale the solution data globally or patch-wise. If you have intricate requirements on conservation of data, this might not satisfy your criteria. Or if you want to do local mass conservation on elements, this might still not be sufficient without writing extra code.
We are always happy to take in contributions if you want to add conservation techniques to the solution transfer capability.
Vijay
On Thu, Jul 9, 2015 at 5:44 PM, Grindeanu, Iulian R. <[email protected]> wrote:
so you will probably want to look over normalization method (implemented in coupler too) In order to have conservation, you need to calculate integrals, on both target and source
"normalization" will compute a factor (with which you multiply the target "computed" field) such as the target integral is equal to the source integral
Some of this work can be done with the coupler, if you understand what it does, and if you like the formula used for integration.
If you do not like them, or if your "conservation" is defined differently, you may need to implement your own.
Iulian
________________________________________ From: 魏华祎 [[email protected]] Sent: Thursday, July 09, 2015 5:31 PM To: Grindeanu, Iulian R. Cc: Vijay S. Mahadevan; MOAB Dev Subject: Re: [MOAB-dev] coupler test can not work well
Hi, Lulian,
Thanks very much for your help. It works well now.
I have another question, does mb coupler consider the conservation law? For example, mass conservation.
In every quad of my mesh, there is a constant mass density. When I tansfer it from old mesh to new mesh, I need to keep the mass conservation as much as possible.
In the above test, it is just a points interpolation. So I need to do more work to keep the mass conservation, right?
Thanks again.
Best
Huayi
2015-07-09 22:47 GMT+08:00 Grindeanu, Iulian R. <[email protected]>:
you used a different scenario parallel comm needs to know what is the source set
If you load from file, that gets populated automatically; in your case, you create mesh in memory
so one issue: pc0->partition_sets().insert(src_mesh);
also, you delete pc0 before mb, also mbc needs to be new too, otherwise it crashes (basically, mbc will be deleted when it goes out of scope, by that time mb and pc0 are gone)
see attached t1.cpp, it works as expected
________________________________________ From: [email protected] [[email protected]] on behalf of 魏华祎 [[email protected]] Sent: Thursday, July 09, 2015 8:44 AM To: Vijay S. Mahadevan Cc: MOAB Dev Subject: [MOAB-dev] coupler test can not work well
Hi, MOAB Developer,
I code a very simple test , please see the attachment. The source mesh is following:
(-1, 1) ------------(0, 1)--------------(1, 1) | | | | | | (-1, 0)-------------(0, 0)-------------(1, 0) | | | | | | (-1, -1)------------(0, -1)------------(1, -1)
In every quad, there is a constant. For example, [1.0, 2.0, 2.0, 3.0] ( from left to right and bottom to up) .
I just change point (0, 0) as (0.3, 0.4) to get the target mesh.
I can compile it, but when I run it, it throw a segment error.
This is my first time to use mb coupler tool, and not sure what mistake I have made, so I need your help.
Thanks very much.
Best
Huayi
2015-07-09 9:56 GMT+08:00 魏华祎 <[email protected]>:
My application mesh is a block structured mesh, which vertices will move and hence the mesh quality will become bad, so I need to optimize the location of mesh vertices. Then I need to tansfer data from old mesh to new mesh. That's my problem. My program is parallel and there is a structured quad mesh on each processor. By the way, my program is not based on Moab. But I want to use the coupler tool in moab. So fristly I need transfer my mesh into Moab.
At present, I explicityly transfer my every block mesh to the repesentation of vertices and coonecicity, just as your suggection. I am writing a test first. Dose you have better idea about it?
2015-07-09 9:36 GMT+08:00 Vijay S. Mahadevan <[email protected]>:
If you are asking about the ScdBox structure, I'm unsure. I don't think we have a test for this. However, if you explicitly represent the vertices and connectivity, usage of a structured grid is transparent to MOAB interfaces and everything should work as is.
What type of problems are you solving ? Are you using a logically structured or performing stencil computations ?
Vijay
On Wed, Jul 8, 2015 at 8:33 PM, 魏华祎 <[email protected]> wrote:
Hi, Vijay,
Thanks for your reply. So it also work on Structured Mesh Representation of Moab?
Best
Huayi
2015-07-09 6:50 GMT+08:00 Vijay S. Mahadevan <[email protected]>:
No it should work for any dimension and is not restricted to 3-D. Have you tried using the coupler for your problem ? If you have issues, send us a test case and the meshes. You can also use mbcoupler_test to verify whether the solution defined on your source mesh is being transferred correctly onto the target mesh.
Vijay
On Wed, Jul 8, 2015 at 5:33 PM, 魏华祎 <[email protected]> wrote:
Hi, There,
I am trying to use Moab Coupler transfer data between 2d meshes, but I am not sure if it works on 2d mesh.
Please give me some suggestion, thanks very much.
Best
Huayi
participants (3)
-
Grindeanu, Iulian R. -
Vijay S. Mahadevan -
魏华祎