You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(2) |
Oct
(2) |
Nov
(27) |
Dec
(31) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(6) |
Feb
(15) |
Mar
(33) |
Apr
(10) |
May
(46) |
Jun
(11) |
Jul
(21) |
Aug
(15) |
Sep
(13) |
Oct
(23) |
Nov
(1) |
Dec
(8) |
2005 |
Jan
(27) |
Feb
(57) |
Mar
(86) |
Apr
(23) |
May
(37) |
Jun
(34) |
Jul
(24) |
Aug
(17) |
Sep
(50) |
Oct
(24) |
Nov
(10) |
Dec
(60) |
2006 |
Jan
(47) |
Feb
(46) |
Mar
(127) |
Apr
(19) |
May
(26) |
Jun
(62) |
Jul
(47) |
Aug
(51) |
Sep
(61) |
Oct
(42) |
Nov
(50) |
Dec
(33) |
2007 |
Jan
(60) |
Feb
(55) |
Mar
(77) |
Apr
(102) |
May
(82) |
Jun
(102) |
Jul
(169) |
Aug
(117) |
Sep
(80) |
Oct
(37) |
Nov
(51) |
Dec
(43) |
2008 |
Jan
(71) |
Feb
(94) |
Mar
(98) |
Apr
(125) |
May
(54) |
Jun
(119) |
Jul
(60) |
Aug
(111) |
Sep
(118) |
Oct
(125) |
Nov
(119) |
Dec
(94) |
2009 |
Jan
(109) |
Feb
(38) |
Mar
(93) |
Apr
(88) |
May
(29) |
Jun
(57) |
Jul
(53) |
Aug
(48) |
Sep
(68) |
Oct
(151) |
Nov
(23) |
Dec
(35) |
2010 |
Jan
(84) |
Feb
(60) |
Mar
(184) |
Apr
(112) |
May
(60) |
Jun
(90) |
Jul
(23) |
Aug
(70) |
Sep
(119) |
Oct
(27) |
Nov
(47) |
Dec
(54) |
2011 |
Jan
(22) |
Feb
(19) |
Mar
(92) |
Apr
(93) |
May
(35) |
Jun
(91) |
Jul
(32) |
Aug
(61) |
Sep
(7) |
Oct
(69) |
Nov
(81) |
Dec
(23) |
2012 |
Jan
(64) |
Feb
(95) |
Mar
(35) |
Apr
(36) |
May
(63) |
Jun
(98) |
Jul
(70) |
Aug
(171) |
Sep
(149) |
Oct
(64) |
Nov
(67) |
Dec
(126) |
2013 |
Jan
(108) |
Feb
(104) |
Mar
(171) |
Apr
(133) |
May
(108) |
Jun
(100) |
Jul
(93) |
Aug
(126) |
Sep
(74) |
Oct
(59) |
Nov
(145) |
Dec
(93) |
2014 |
Jan
(38) |
Feb
(45) |
Mar
(26) |
Apr
(41) |
May
(125) |
Jun
(70) |
Jul
(61) |
Aug
(66) |
Sep
(60) |
Oct
(110) |
Nov
(27) |
Dec
(30) |
2015 |
Jan
(43) |
Feb
(67) |
Mar
(71) |
Apr
(92) |
May
(39) |
Jun
(15) |
Jul
(46) |
Aug
(63) |
Sep
(84) |
Oct
(82) |
Nov
(69) |
Dec
(45) |
2016 |
Jan
(92) |
Feb
(91) |
Mar
(148) |
Apr
(43) |
May
(58) |
Jun
(117) |
Jul
(92) |
Aug
(140) |
Sep
(49) |
Oct
(33) |
Nov
(85) |
Dec
(40) |
2017 |
Jan
(41) |
Feb
(36) |
Mar
(49) |
Apr
(41) |
May
(73) |
Jun
(51) |
Jul
(12) |
Aug
(69) |
Sep
(26) |
Oct
(43) |
Nov
(75) |
Dec
(23) |
2018 |
Jan
(86) |
Feb
(36) |
Mar
(50) |
Apr
(28) |
May
(53) |
Jun
(65) |
Jul
(26) |
Aug
(43) |
Sep
(32) |
Oct
(28) |
Nov
(52) |
Dec
(17) |
2019 |
Jan
(39) |
Feb
(26) |
Mar
(71) |
Apr
(30) |
May
(73) |
Jun
(18) |
Jul
(5) |
Aug
(10) |
Sep
(8) |
Oct
(24) |
Nov
(12) |
Dec
(34) |
2020 |
Jan
(17) |
Feb
(10) |
Mar
(6) |
Apr
(4) |
May
(15) |
Jun
(3) |
Jul
(8) |
Aug
(15) |
Sep
(6) |
Oct
(3) |
Nov
|
Dec
(4) |
2021 |
Jan
(4) |
Feb
(4) |
Mar
(21) |
Apr
(14) |
May
(13) |
Jun
(18) |
Jul
(1) |
Aug
(39) |
Sep
(1) |
Oct
|
Nov
(3) |
Dec
|
2022 |
Jan
|
Feb
|
Mar
(2) |
Apr
(8) |
May
|
Jun
|
Jul
|
Aug
(3) |
Sep
|
Oct
(3) |
Nov
|
Dec
|
2023 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(7) |
Sep
(3) |
Oct
|
Nov
|
Dec
(1) |
From: Yuxiang W. <yw...@vi...> - 2018-09-15 01:21:55
|
Dear libmesh community, Sorry for the spam. Could you please provide some help to get me started with any trivial example, such as the introduction_ex1 example? I apologize for my lack of experience, but I spent quite some time on getting the basics working and feel very frustrated. Although I can run this example, I do not know even how to make a copy of this example elsewhere (rename it) and run it again. I can understand the introduction_ex1.C fine, but even with this most trivial example, the Makefile.in is 1237 lines long. I read part of it and just gave up on going through to the end. My goal is - to create my own folder somewhere else on my hard drive and run that code. I realized that if I just copy the introduciton_ex1 folder to another folder (e.g. ~/introduction_ex1), I could not compile it. Would there be any help? Any would be greatly appreciated. Thank you so much, Shawn -- Yuxiang "Shawn" Wang, PhD yw...@vi... +1 (434) 284-0836 |
From: gmail <a.m...@gm...> - 2018-09-14 20:00:33
|
> On Sep 14, 2018, at 1:19 PM, gmail <a.m...@gm...> wrote: > > Thanks Roy. > >> On Sep 14, 2018, at 1:06 PM, Roy Stogner <roy...@ic...> wrote: >> >> >> On Fri, 14 Sep 2018, gmail wrote: >> >>> I’ve recently added plasticity with implicit integration to my code. >>> This requires keeping track of so called “history variables” (i.e. >>> internal parameters of plasticity such as back stresses, equivalent >>> plastic strain,..) on each quadrature point. I have come up with a >>> crude work around that works currently simply defining each history >>> variable for each quadrature point (in a uniform mesh) as a DG0 >>> variable. I was wondering: >>> 1) if there’s a better way to do this within the libMesh framework? >>> i.e., a way to attach to a NonlinearImplicitSystem an array of N >>> variables (where N is not necessarily the number of knowns in the >>> system) with a correct parallel layout. >> >> Generally the best thing to do for auxilliary variables is use a >> vector in a separate ExplicitSystem... >> >> But the reason to do it that way is so that they're kept straight for >> you through repartitioning, ghosting, refinement and coarsening, etc. >> In this case, with the DG0 variables idea, you do get repartitioning >> and ghosting handled. >> >> But if you have a variable per quadrature point, you don't get the >> AMR/C benefits, because the quadrature point on a child element won't >> be at the same place as the parent point was and probably shouldn't >> have the same value. If you're never going to refine or coarsen >> that's fine. If you are, and you're using simplices, then you could >> pick a MONOMIAL basis order that matches your implicit system's >> quadrature rule, interpolate that onto quadrature points, and use >> that. If you're not on simplices, but you're using a low p, you can >> probably get an L2_LAGRANGE order to match. If you're using high p >> and not on simplices then we probably don't have anything that can >> help you with AMR. > > OK. I’m sticking with my DG0 implementation then. I already do projections of these variables when I want to write the output. > >> >>> 2) Even though I set the hideoutput flag on, on the ExplicitSystem >>> that contains these variables, it’s still being written to when I >>> call ExodusII_IO::write_timestep(). >> >> That... looks like an unimplemented feature that isn't marked as >> unimplemented? Looks like hide_output is only respected by our >> XDR/XDA I/O, and for other formats we have a container-of-strings >> system_names variable to accomplish the same task? That seems... >> inconsistent. John and I probably should have noticed that before >> accepting https://github.com/libMesh/libmesh/pull/611 >> >> I suppose it would make sense to, when system_names is left NULL, >> check hide_output() instead of defaulting to all systems? > > I see, I thought I might be missing something. I will try to create a patch that does the same in ExodusII_IO. Here’s my embarrassingly simple patch <https://www.dropbox.com/s/udlhiwpqmevma4k/libmesh-equation_system-hide_output.diff?dl=0>. Ata > >> --- >> Roy > > Ata |
From: Roy S. <roy...@ic...> - 2018-09-14 17:41:02
|
On Fri, 14 Sep 2018, gmail wrote: > I’ve recently added plasticity with implicit integration to my code. > This requires keeping track of so called “history variables” (i.e. > internal parameters of plasticity such as back stresses, equivalent > plastic strain,..) on each quadrature point. I have come up with a > crude work around that works currently simply defining each history > variable for each quadrature point (in a uniform mesh) as a DG0 > variable. I was wondering: > > 1) if there’s a better way to do this within the libMesh framework? > i.e., a way to attach to a NonlinearImplicitSystem an array of N > variables (where N is not necessarily the number of knowns in the > system) with a correct parallel layout. Generally the best thing to do for auxilliary variables is use a vector in a separate ExplicitSystem... But the reason to do it that way is so that they're kept straight for you through repartitioning, ghosting, refinement and coarsening, etc. In this case, with the DG0 variables idea, you do get repartitioning and ghosting handled. But if you have a variable per quadrature point, you don't get the AMR/C benefits, because the quadrature point on a child element won't be at the same place as the parent point was and probably shouldn't have the same value. If you're never going to refine or coarsen that's fine. If you are, and you're using simplices, then you could pick a MONOMIAL basis order that matches your implicit system's quadrature rule, interpolate that onto quadrature points, and use that. If you're not on simplices, but you're using a low p, you can probably get an L2_LAGRANGE order to match. If you're using high p and not on simplices then we probably don't have anything that can help you with AMR. > 2) Even though I set the hideoutput flag on, on the ExplicitSystem > that contains these variables, it’s still being written to when I > call ExodusII_IO::write_timestep(). That... looks like an unimplemented feature that isn't marked as unimplemented? Looks like hide_output is only respected by our XDR/XDA I/O, and for other formats we have a container-of-strings system_names variable to accomplish the same task? That seems... inconsistent. John and I probably should have noticed that before accepting https://github.com/libMesh/libmesh/pull/611 I suppose it would make sense to, when system_names is left NULL, check hide_output() instead of defaulting to all systems? --- Roy |
From: gmail <a.m...@gm...> - 2018-09-14 17:19:24
|
Thanks Roy. > On Sep 14, 2018, at 1:06 PM, Roy Stogner <roy...@ic...> wrote: > > > On Fri, 14 Sep 2018, gmail wrote: > >> I’ve recently added plasticity with implicit integration to my code. >> This requires keeping track of so called “history variables” (i.e. >> internal parameters of plasticity such as back stresses, equivalent >> plastic strain,..) on each quadrature point. I have come up with a >> crude work around that works currently simply defining each history >> variable for each quadrature point (in a uniform mesh) as a DG0 >> variable. I was wondering: >> 1) if there’s a better way to do this within the libMesh framework? >> i.e., a way to attach to a NonlinearImplicitSystem an array of N >> variables (where N is not necessarily the number of knowns in the >> system) with a correct parallel layout. > > Generally the best thing to do for auxilliary variables is use a > vector in a separate ExplicitSystem... > > But the reason to do it that way is so that they're kept straight for > you through repartitioning, ghosting, refinement and coarsening, etc. > In this case, with the DG0 variables idea, you do get repartitioning > and ghosting handled. > > But if you have a variable per quadrature point, you don't get the > AMR/C benefits, because the quadrature point on a child element won't > be at the same place as the parent point was and probably shouldn't > have the same value. If you're never going to refine or coarsen > that's fine. If you are, and you're using simplices, then you could > pick a MONOMIAL basis order that matches your implicit system's > quadrature rule, interpolate that onto quadrature points, and use > that. If you're not on simplices, but you're using a low p, you can > probably get an L2_LAGRANGE order to match. If you're using high p > and not on simplices then we probably don't have anything that can > help you with AMR. OK. I’m sticking with my DG0 implementation then. I already do projections of these variables when I want to write the output. > >> 2) Even though I set the hideoutput flag on, on the ExplicitSystem >> that contains these variables, it’s still being written to when I >> call ExodusII_IO::write_timestep(). > > That... looks like an unimplemented feature that isn't marked as > unimplemented? Looks like hide_output is only respected by our > XDR/XDA I/O, and for other formats we have a container-of-strings > system_names variable to accomplish the same task? That seems... > inconsistent. John and I probably should have noticed that before > accepting https://github.com/libMesh/libmesh/pull/611 > > I suppose it would make sense to, when system_names is left NULL, > check hide_output() instead of defaulting to all systems? I see, I thought I might be missing something. I will try to create a patch that does the same in ExodusII_IO. > --- > Roy Ata |
From: gmail <a.m...@gm...> - 2018-09-14 15:48:30
|
Hi, I’ve recently added plasticity with implicit integration to my code. This requires keeping track of so called “history variables” (i.e. internal parameters of plasticity such as back stresses, equivalent plastic strain,..) on each quadrature point. I have come up with a crude work around that works currently simply defining each history variable for each quadrature point (in a uniform mesh) as a DG0 variable. I was wondering: 1) if there’s a better way to do this within the libMesh framework? i.e., a way to attach to a NonlinearImplicitSystem an array of N variables (where N is not necessarily the number of knowns in the system) with a correct parallel layout. 2) Even though I set the hideoutput flag on, on the ExplicitSystem that contains these variables, it’s still being written to when I call ExodusII_IO::write_timestep(). Many thanks for the help, Ata |
From: Simone R. <sim...@gm...> - 2018-09-13 10:14:44
|
I fixed it looping over the mesh elements using the active elements iterator. Thanks, Simone > On Sep 12, 2018, at 7:25 PM, Simone Rossi <sim...@gm...> wrote: > > I tried adding a new node to the mesh. > If I call: > > MeshTools::Generation::build_cube(mesh, 2, 2, 0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0,TRI3); > > I simply add a new (copied) node to the mesh and change it in one element. That gives me the desired mesh with 10 vertices. Defining a system of linear Lagrangian elements on this mesh, the solution vector has 10 entries. All good. > > On the other hand, if before adding the node, I call > > MeshTools::Generation::build_cube(mesh, 1, 1, 0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0,TRI3); > MeshRefinement refinement(mesh); > refinement.uniformly_refine(); > > then the mesh object sees 10 vertices, but the solution vector has only 9 entries. Also the exporter does not recognize the additional node in the mesh. > > This is how I’m adding the node in both scenarios: > > Node * node = mesh.node_ptr(0); > auto nodeID = mesh.node_ptr(0)->id(); > Node * new_node = new Node(*node); > new_node -> set_id(100); > mesh.add_node(new_node); > > bool stop = false; > for (int elc = 0; elc < mesh.n_elem() ; ++elc) > { > Elem * elem = mesh.elem_ptr(elc); > for(int nn = 0; nn < elem->n_nodes(); ++nn) > { > int ID = elem->node_ptr(nn)->id(); > if(ID == nodeID) > { > elem->set_node(nn) = new_node; > stop = true; > break; > } > } > if(stop) break; > } > > Do you have any suggestion? > Thanks for the help, > Simone > > >> On Sep 11, 2018, at 12:58 PM, Roy Stogner <roy...@ic...> wrote: >> >> >> On Tue, 11 Sep 2018, Rossi, Simone wrote: >> >>>> If you start with the 10 node mesh >>>> on top and refine, then you will always have continuity of any C0 (or >>>> C1) solution variables at the two shared domain corner nodes. >>> This is what I would like to have. The idea is to introduce some random “cuts” in the mesh, where I can apply some boundary conditions. >>> I thought the easiest way to achieve this would have been adding new duplicated nodes on the side using AMR. >> >> Yeah, if that's the effect you want, then a single refinement followed >> by duplicating the non-corner internal boundary nodes is exactly what >> you want to do. >> >>> Could I “break” the mesh, use AMR, and then stitch back the nodes together? >> >> You could but it would be more of a pain. Just do one refinement and >> then break it afterward. Or, actually, you could also use TRI6 >> instead of TRI3 and break the middle node between the two triangles. >> --- >> Roy >> _______________________________________________ >> Libmesh-users mailing list >> Lib...@li... >> https://lists.sourceforge.net/lists/listinfo/libmesh-users > > > _______________________________________________ > Libmesh-users mailing list > Lib...@li... > https://lists.sourceforge.net/lists/listinfo/libmesh-users |
From: Simone R. <sim...@gm...> - 2018-09-12 23:32:03
|
I tried adding a new node to the mesh. If I call: MeshTools::Generation::build_cube(mesh, 2, 2, 0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0,TRI3); I simply add a new (copied) node to the mesh and change it in one element. That gives me the desired mesh with 10 vertices. Defining a system of linear Lagrangian elements on this mesh, the solution vector has 10 entries. All good. On the other hand, if before adding the node, I call MeshTools::Generation::build_cube(mesh, 1, 1, 0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0,TRI3); MeshRefinement refinement(mesh); refinement.uniformly_refine(); then the mesh object sees 10 vertices, but the solution vector has only 9 entries. Also the exporter does not recognize the additional node in the mesh. This is how I’m adding the node in both scenarios: Node * node = mesh.node_ptr(0); auto nodeID = mesh.node_ptr(0)->id(); Node * new_node = new Node(*node); new_node -> set_id(100); mesh.add_node(new_node); bool stop = false; for (int elc = 0; elc < mesh.n_elem() ; ++elc) { Elem * elem = mesh.elem_ptr(elc); for(int nn = 0; nn < elem->n_nodes(); ++nn) { int ID = elem->node_ptr(nn)->id(); if(ID == nodeID) { elem->set_node(nn) = new_node; stop = true; break; } } if(stop) break; } Do you have any suggestion? Thanks for the help, Simone > On Sep 11, 2018, at 12:58 PM, Roy Stogner <roy...@ic...> wrote: > > > On Tue, 11 Sep 2018, Rossi, Simone wrote: > >>> If you start with the 10 node mesh >>> on top and refine, then you will always have continuity of any C0 (or >>> C1) solution variables at the two shared domain corner nodes. >> This is what I would like to have. The idea is to introduce some random “cuts” in the mesh, where I can apply some boundary conditions. >> I thought the easiest way to achieve this would have been adding new duplicated nodes on the side using AMR. > > Yeah, if that's the effect you want, then a single refinement followed > by duplicating the non-corner internal boundary nodes is exactly what > you want to do. > >> Could I “break” the mesh, use AMR, and then stitch back the nodes together? > > You could but it would be more of a pain. Just do one refinement and > then break it afterward. Or, actually, you could also use TRI6 > instead of TRI3 and break the middle node between the two triangles. > --- > Roy > _______________________________________________ > Libmesh-users mailing list > Lib...@li... > https://lists.sourceforge.net/lists/listinfo/libmesh-users |
From: Roy S. <roy...@ic...> - 2018-09-11 16:58:52
|
On Tue, 11 Sep 2018, Rossi, Simone wrote: >> If you start with the 10 node mesh >> on top and refine, then you will always have continuity of any C0 (or >> C1) solution variables at the two shared domain corner nodes. > This is what I would like to have. The idea is to introduce some random “cuts” in the mesh, where I can apply some boundary conditions. > I thought the easiest way to achieve this would have been adding new duplicated nodes on the side using AMR. Yeah, if that's the effect you want, then a single refinement followed by duplicating the non-corner internal boundary nodes is exactly what you want to do. > Could I “break” the mesh, use AMR, and then stitch back the nodes together? You could but it would be more of a pain. Just do one refinement and then break it afterward. Or, actually, you could also use TRI6 instead of TRI3 and break the middle node between the two triangles. --- Roy |
From: Roy S. <roy...@ic...> - 2018-09-11 15:30:51
|
On Tue, 11 Sep 2018, John Peterson wrote: >> I’m trying to create a triangular mesh like the following >> >> 7 — — 8 —— 9 >> | / | / | >> | / | / | >> 3 —— 4/5—— 6 >> | / | / | >> | / | / | >> 0 —— 1 —— 2 >> >> Where the node 4 and 5 have the same location but belong to different >> triangles: >> 4 belongs to (0,3,4), (3,4,8) and (4,9,8) >> while >> 5 belongs to (0,1,5), (1,6,5) and (5,6,9). >> In this way, the sides 0-4,4-9 and 0-5,5-9 are true boundaries. > If you want to maintain an internal boundary, you could first "break apart" > the mesh by inserting new nodes 10 and 11: > > 7 — — — —— 9,10 > | / | > | / | > | / | > | / | > | / | > 0,11--- — —— 2 > > And then updating the connectivity for the two triangles to (0,7,9) and > (2,11,10). Uniform refinement from this point on should maintain the > interior boundary... John is entirely correct, but I should point out that these are two *different* types of boundaries. If you start with the 10 node mesh on top and refine, then you will always have continuity of any C0 (or C1) solution variables at the two shared domain corner nodes. Whereas if you start with the 6 node mesh below it and refine, then nothing prevents the solution on those two corners from holding two separate values depending on which triangular region you evaluate them from. --- Roy |
From: John P. <jwp...@gm...> - 2018-09-11 14:45:15
|
On Mon, Sep 10, 2018 at 1:57 PM Simone Rossi <sim...@gm...> wrote: > Hello everyone, > I apologize if this is a repeated email. I’m not sure if my previous email > went through. > > I’m trying to create a triangular mesh like the following > > 7 — — 8 —— 9 > | / | / | > | / | / | > 3 —— 4/5—— 6 > | / | / | > | / | / | > 0 —— 1 —— 2 > > Where the node 4 and 5 have the same location but belong to different > triangles: > 4 belongs to (0,3,4), (3,4,8) and (4,9,8) > while > 5 belongs to (0,1,5), (1,6,5) and (5,6,9). > In this way, the sides 0-4,4-9 and 0-5,5-9 are true boundaries. > > In my failed attempt I first created the mesh > > 7 — — — —— 9 > | / | > | / | > | / | > | / | > | / | > 0 —— — —— 2 > > I set the neighbor_ptr to nullptr on the common side and then asked to > refine uniformly the mesh. > When the mesh is refined I only get 9 nodes instead of 10. > Do you have any suggestion on how to achieve this? > I think what happens is that even though the two triangles no longer have neighbor pointers to one another, they still technically "share" the edge (0,9) because they both have nodes 0 and 9. When a new node is inserted for each triangle during refinement, libmesh detects that it is in the same geometric location and only adds a single copy of the node, rather than two copies directly on top of one another, which is what you usually want. Therefore, the two triangles are tied back together at that node. If you want to maintain an internal boundary, you could first "break apart" the mesh by inserting new nodes 10 and 11: 7 — — — —— 9,10 | / | | / | | / | | / | | / | 0,11--- — —— 2 And then updating the connectivity for the two triangles to (0,7,9) and (2,11,10). Uniform refinement from this point on should maintain the interior boundary... -- John |
From: Simone R. <sim...@gm...> - 2018-09-10 19:57:25
|
Hello everyone, I apologize if this is a repeated email. I’m not sure if my previous email went through. I’m trying to create a triangular mesh like the following 7 — — 8 —— 9 | / | / | | / | / | 3 —— 4/5—— 6 | / | / | | / | / | 0 —— 1 —— 2 Where the node 4 and 5 have the same location but belong to different triangles: 4 belongs to (0,3,4), (3,4,8) and (4,9,8) while 5 belongs to (0,1,5), (1,6,5) and (5,6,9). In this way, the sides 0-4,4-9 and 0-5,5-9 are true boundaries. In my failed attempt I first created the mesh 7 — — — —— 9 | / | | / | | / | | / | | / | 0 —— — —— 2 I set the neighbor_ptr to nullptr on the common side and then asked to refine uniformly the mesh. When the mesh is refined I only get 9 nodes instead of 10. Do you have any suggestion on how to achieve this? Thanks, Simone |
From: John P. <jwp...@gm...> - 2018-09-07 18:53:55
|
On Fri, Sep 7, 2018 at 12:16 PM Miguel Angel Salazar de Troya < sal...@gm...> wrote: > Hi, > > I want to solve a simple Poisson equation with a diffusion coefficient, a > simple reaction term and apply Adaptive Mesh Ref (AMR). The problem is that > if the diffusion coefficient is much smaller than the mesh resolution (as > it can happen before applying AMR), I obtain over and undershoots of the > solution. I need this solution to be stable and not be over 1 or under 0 > (bounds from the source term). > > One way I was able to achieve this was by implementing a Finite Volume > solver within libMesh. Very easy for simple cartesian geometries. However, > now I need to extend it to non-cartesian geometries that are second order. > I am wondering if there are alternatives in libMesh to solve this > over/undershoot problem for the poisson equation. > If you have a reaction-dominated reaction/diffusion equation, you may be able to stabilize it using a Galerkin least-squares (GLS) formulation. There is a good discussion in the 1995 paper by Thompson: https://doi.org/10.1002/nme.1620380303 -- John |
From: Miguel A. S. de T. <sal...@gm...> - 2018-09-07 18:16:22
|
Hi, I want to solve a simple Poisson equation with a diffusion coefficient, a simple reaction term and apply Adaptive Mesh Ref (AMR). The problem is that if the diffusion coefficient is much smaller than the mesh resolution (as it can happen before applying AMR), I obtain over and undershoots of the solution. I need this solution to be stable and not be over 1 or under 0 (bounds from the source term). One way I was able to achieve this was by implementing a Finite Volume solver within libMesh. Very easy for simple cartesian geometries. However, now I need to extend it to non-cartesian geometries that are second order. I am wondering if there are alternatives in libMesh to solve this over/undershoot problem for the poisson equation. Thanks Miguel |
From: Paul T. B. <ptb...@gm...> - 2018-09-07 11:23:35
|
On Fri, Sep 7, 2018 at 3:26 AM Nikhil Vaidya <nik...@gm...> wrote: > I am trying to make some manipulations to sparse matrices. I have a > function that sets some pre-determined entries in a sparse matrix to a > pre-determined value. I have multiple sparse matrices to which I apply this > procedure. None of the said sparse matrices contain non-zero elements at > (0,0) before the modification. Yet during the modification, only one of the > many sparse matrices gives me the following error message: > > [0]PETSC ERROR: Argument out of range > [0]PETSC ERROR: New nonzero at (0,0) caused a malloc > Use MatSetOption(A, MAT_NEW_NONZERO_ALLOCATION_ERR, PETSC_FALSE) to turn > off this check > This error indicates that you've not correctly preallocated the PETSc matrix. You need to make sure that you're correctly allocating the number of nonzeros per row in the sparse matrices you're manipulating. > > I cannot understand the reason for this behaviour. > > Best, > Nikhil > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ > Libmesh-users mailing list > Lib...@li... > https://lists.sourceforge.net/lists/listinfo/libmesh-users > |
From: Nikhil V. <nik...@gm...> - 2018-09-07 07:26:29
|
I am trying to make some manipulations to sparse matrices. I have a function that sets some pre-determined entries in a sparse matrix to a pre-determined value. I have multiple sparse matrices to which I apply this procedure. None of the said sparse matrices contain non-zero elements at (0,0) before the modification. Yet during the modification, only one of the many sparse matrices gives me the following error message: [0]PETSC ERROR: Argument out of range [0]PETSC ERROR: New nonzero at (0,0) caused a malloc Use MatSetOption(A, MAT_NEW_NONZERO_ALLOCATION_ERR, PETSC_FALSE) to turn off this check I cannot understand the reason for this behaviour. Best, Nikhil |
From: Charlie T. <cha...@gm...> - 2018-09-04 21:32:39
|
I'm not sure what is wrong here, but it asked that I report it, so here it is. Looks as though something is awry with beignet-opencl-icd: no supported GPU found, this is probably the wrong opencl-icd package for this hardware Thanks *************************************************************** * Done Running Example reduced_basis_ex2: * ./example-opt -online_mode 0 -eps_type lapack *************************************************************** *************************************************************** * Running Example reduced_basis_ex2: * ./example-dbg -online_mode 1 *************************************************************** DRM_IOCTL_I915_GEM_APERTURE failed: Invalid argument Assuming 131072kB available aperture size. May lead to reduced performance or incorrect rendering. get chip id failed: -1 [22] param: 4, val: 0 DRM_IOCTL_I915_GEM_APERTURE failed: Invalid argument Assuming 131072kB available aperture size. May lead to reduced performance or incorrect rendering. get chip id failed: -1 [22] param: 4, val: 0 beignet-opencl-icd: no supported GPU found, this is probably the wrong opencl-icd package for this hardware (If you have multiple ICDs installed and OpenCL works, you can ignore this message) DRM_IOCTL_I915_GEM_APERTURE failed: Invalid argument Assuming 131072kB available aperture size. May lead to reduced performance or incorrect rendering. get chip id failed: -1 [22] param: 4, val: 0 DRM_IOCTL_I915_GEM_APERTURE failed: Invalid argument Assuming 131072kB available aperture size. May lead to reduced performance or incorrect rendering. get chip id failed: -1 [22] param: 4, val: 0 beignet-opencl-icd: no supported GPU found, this is probably the wrong opencl-icd package for this hardware (If you have multiple ICDs installed and OpenCL works, you can ignore this message) DRM_IOCTL_I915_GEM_APERTURE failed: Invalid argument Assuming 131072kB available aperture size. May lead to reduced performance or incorrect rendering. get chip id failed: -1 [22] param: 4, val: 0 beignet-opencl-icd: no supported GPU found, this is probably the wrong opencl-icd package for this hardware (If you have multiple ICDs installed and OpenCL works, you can ignore this message) EquationSystems n_systems()=2 System #0, "RBConvectionDiffusion" Type "RBConstruction" Variables="u" Finite Element Types="LAGRANGE", "JACOBI_20_00" Infinite Element Mapping="CARTESIAN" Approximation Orders="FIRST", "THIRD" n_dofs()=676 n_local_dofs()=676 n_constrained_dofs()=26 n_local_constrained_dofs()=26 n_vectors()=1 n_matrices()=1 DofMap Sparsity Average On-Processor Bandwidth <= 8.54438 Average Off-Processor Bandwidth <= 0 Maximum On-Processor Bandwidth <= 9 Maximum Off-Processor Bandwidth <= 0 DofMap Constraints Number of DoF Constraints = 26 Average DoF Constraint Length= 0 Number of Node Constraints = 0 System #1, "RBSCMConvectionDiffusion" Type "Eigen" Variables="p" Finite Element Types="LAGRANGE", "JACOBI_20_00" Infinite Element Mapping="CARTESIAN" Approximation Orders="FIRST", "THIRD" n_dofs()=676 n_local_dofs()=676 n_constrained_dofs()=0 n_local_constrained_dofs()=0 n_vectors()=0 n_matrices()=2 DofMap Sparsity Average On-Processor Bandwidth <= 8.54438 Average Off-Processor Bandwidth <= 0 Maximum On-Processor Bandwidth <= 9 Maximum Off-Processor Bandwidth <= 0 DofMap Constraints Number of DoF Constraints = 0 Number of Node Constraints = 0 Mesh Information: elem_dimensions()={2} spatial_dimension()=2 n_nodes()=676 n_local_nodes()=676 n_elem()=625 n_local_elem()=625 n_active_elem()=625 n_subdomains()=1 n_partitions()=1 n_processors()=1 n_threads()=1 processor_id()=0 mu_0: 2.000000e-01 mu_1: 7.000000e-01 mu_2: 1.000000e-01 glp_add_rows: nrs = 0; invalid number of rows Error detected in file api/prob1.c at line 256 [liberty:04028] *** Process received signal *** [liberty:04028] Signal: Aborted (6) [liberty:04028] Signal code: (-6) [liberty:04028] [ 0] /usr/x86_64-linux-gnu/lib/libpthread.so.0(+0x127f0)[0x7f5e600ef7f0] [liberty:04028] [ 1] /usr/x86_64-linux-gnu/lib/libc.so.6(gsignal+0xc7)[0x7f5e5f3e5e87] [liberty:04028] [ 2] /usr/x86_64-linux-gnu/lib/libc.so.6(abort+0x141)[0x7f5e5f3e77f1] [liberty:04028] [ 3] /usr/lib/x86_64-linux-gnu/libglpk.so.40(glp_error_+0x0)[0x7f5e5bda3650] [liberty:04028] [ 4] /usr/lib/x86_64-linux-gnu/libglpk.so.40(glp_add_rows+0x2d1)[0x7f5e5bd63971] [liberty:04028] [ 5] /home/chaztikov/.local/src/libmesh/arch-linux-hypre-opt/.libs/libmesh_dbg.so.0(_ZN7libMesh15RBSCMEvaluation10get_SCM_LBEv+0x216)[0x7f5e630c2bc4] [liberty:04028] [ 6] /home/chaztikov/.local/src/libmesh/arch-linux-hypre-opt/examples/reduced_basis/reduced_basis_ex2/.libs/example-dbg(+0x8f6bf)[0x556475ca96bf] [liberty:04028] [ 7] /home/chaztikov/.local/src/libmesh/arch-linux-hypre-opt/.libs/libmesh_dbg.so.0(_ZN7libMesh12RBEvaluation8rb_solveEj+0x5e1)[0x7f5e630a49d1] [liberty:04028] [ 8] /home/chaztikov/.local/src/libmesh/arch-linux-hypre-opt/examples/reduced_basis/reduced_basis_ex2/.libs/example-dbg(+0x79b47)[0x556475c93b47] [liberty:04028] [ 9] /usr/x86_64-linux-gnu/lib/libc.so.6(__libc_start_main+0xe7)[0x7f5e5f3c8b97] [liberty:04028] [10] /home/chaztikov/.local/src/libmesh/arch-linux-hypre-opt/examples/reduced_basis/reduced_basis_ex2/.libs/example-dbg(+0x78bba)[0x556475c92bba] [liberty:04028] *** End of error message *** /home/chaztikov/.local/src/libmesh/arch-linux-hypre-opt/../examples/run_common.sh: line 62: 4028 Aborted (core dumped) $LIBMESH_RUN ./$executable $options $LIBMESH_OPTIONS FAIL: run.sh ==================================================== 1 of 1 test failed Please report to lib...@li... ==================================================== Makefile:997: recipe for target 'check-TESTS' failed make[4]: *** [check-TESTS] Error 1 make[4]: Leaving directory '/home/chaztikov/.local/src/libmesh/arch-linux-hypre-opt/examples/reduced_basis/reduced_basis_ex2' Makefile:1120: recipe for target 'check-am' failed make[3]: *** [check-am] Error 2 make[3]: Leaving directory '/home/chaztikov/.local/src/libmesh/arch-linux-hypre-opt/examples/reduced_basis/reduced_basis_ex2' Makefile:1123: recipe for target 'check' failed make[2]: *** [check] Error 2 make[2]: Leaving directory '/home/chaztikov/.local/src/libmesh/arch-linux-hypre-opt/examples/reduced_basis/reduced_basis_ex2' Makefile:724: recipe for target 'check-recursive' failed make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory '/home/chaztikov/.local/src/libmesh/arch-linux-hypre-opt/examples' Makefile:29399: recipe for target 'check-recursive' failed make: *** [check-recursive] Error 1 |
From: ChoiS . <cho...@gm...> - 2018-09-02 00:49:31
|
Hi, After I solved temperature and concentrations, I wish to solve chemical properties each element. That needs to access to each element and compute variables and store them. I found a similar case in the list but it ended with a comment to make an standard example. https://sourceforge.net/p/libmesh/mailman/message/29488734/ Is there any progress on that? Can you suggest an example to see for this issue? Thanks, Sung |
From: John P. <jwp...@gm...> - 2018-08-31 15:01:36
|
> /usr/bin/x86_64-linux-gnu-ld: gk_cur_jbufs: TLS definition in > //usr/lib/x86_64-linux-gnu/libmetis.so.5 section .tdata mismatches non-TLS > definition in ./.libs/libmesh_devel.so section .data What version of libmesh are you using? Is PETSc detected during configure? I'm trying to figure out why a libmetis in /usr/lib is being pulled in rather than the one we provide in contrib or the one used by PETSc. Since this mailing list does not allow attachments, it would also be helpful if you separately sent me your config.log file for libmesh. -- John |
From: Charlie T. <cha...@gm...> - 2018-08-31 13:35:54
|
It seems the issue is independent of trilinos, disabling that gives: CXXLD getpot_parse-devel In file included from /usr/lib/x86_64-linux-gnu/openmpi/include/openmpi/ompi/mpi/cxx/mpicxx.h:283, from /usr/lib/x86_64-linux-gnu/openmpi/include/mpi.h:2704, from ./include/libmesh/libmesh_common.h:53, from ./include/libmesh/libmesh.h:25, from ../src/apps/splitter.C:21: /usr/lib/x86_64-linux-gnu/openmpi/include/openmpi/ompi/mpi/cxx/op_inln.h: In member function ‘virtual void MPI::Op::Init(void (*)(const void*, void*, int, const MPI::Datatype&), bool)’: /usr/lib/x86_64-linux-gnu/openmpi/include/openmpi/ompi/mpi/cxx/op_inln.h:121:46: warning: cast between incompatible function types from ‘void (*)(void*, void*, int*, ompi_datatype_t**, void (*)(void*, void*, int*, ompi_datatype_t**))’ to ‘void (*)(void*, void*, int*, ompi_datatype_t**)’ [-Wcast-function-type] (void)MPI_Op_create((MPI_User_function*) ompi_mpi_cxx_op_intercept, ^~~~~~~~~~~~~~~~~~~~~~~~~ /usr/lib/x86_64-linux-gnu/openmpi/include/openmpi/ompi/mpi/cxx/op_inln.h:123:59: warning: cast between incompatible function types from ‘void (*)(const void*, void*, int, const MPI::Datatype&)’ to ‘void (*)(void*, void*, int*, ompi_datatype_t**)’ [-Wcast-function-type] ompi_op_set_cxx_callback(mpi_op, (MPI_User_function*) func); ^~~~ CXXLD amr-devel /usr/bin/x86_64-linux-gnu-ld: gk_cur_jbufs: TLS definition in //usr/lib/x86_64-linux-gnu/libmetis.so.5 section .tdata mismatches non-TLS definition in ./.libs/libmesh_devel.so section .data //usr/lib/x86_64-linux-gnu/libmetis.so.5: error adding symbols: Bad value collect2: error: ld returned 1 exit status Makefile:11081: recipe for target 'fparser_parse-devel' failed make[1]: *** [fparser_parse-devel] Error 1 make[1]: *** Waiting for unfinished jobs.... /usr/bin/x86_64-linux-gnu-ld: gk_cur_jbufs: TLS definition in //usr/lib/x86_64-linux-gnu/libmetis.so.5 section .tdata mismatches non-TLS definition in ./.libs/libmesh_devel.so section .data //usr/lib/x86_64-linux-gnu/libmetis.so.5: error adding symbols: Bad value collect2: error: ld returned 1 exit status Makefile:11099: recipe for target 'getpot_parse-devel' failed make[1]: *** [getpot_parse-devel] Error 1 /usr/bin/x86_64-linux-gnu-ld: gk_cur_jbufs: TLS definition in //usr/lib/x86_64-linux-gnu/libmetis.so.5 section .tdata mismatches non-TLS definition in ./.libs/libmesh_devel.so section .data //usr/lib/x86_64-linux-gnu/libmetis.so.5: error adding symbols: Bad value collect2: error: ld returned 1 exit status Makefile:11021: recipe for target 'amr-devel' failed make[1]: *** [amr-devel] Error 1 make[1]: Leaving directory '/home/chaztikov/.local/src/libmesh/arch-linux-openmp-opt' Makefile:29399: recipe for target 'all-recursive' failed make: *** [all-recursive] Error 1 On Fri, Aug 31, 2018 at 8:50 AM Charlie Talbot <cha...@gm...> wrote: > I'm having Trouble Configuring to Enable Trilinos (DTK_MeshContainer.hpp: > No such file or directory) > > I've attached the configuration files used for libmesh and trilinos, am I > doing something wrong? > > Here's the error when I make libmesh > > compilation terminated. > Makefile:19003: recipe for target > 'src/solution_transfer/libmesh_devel_la-dtk_adapter.lo' failed > make[1]: *** [src/solution_transfer/libmesh_devel_la-dtk_adapter.lo] Error > 1 > make[1]: *** Waiting for unfinished jobs.... > In file included from ../src/solution_transfer/dtk_evaluator.C:22: > ./include/libmesh/dtk_evaluator.h:31:10: fatal error: > DTK_MeshContainer.hpp: No such file or directory > #include <DTK_MeshContainer.hpp> > > Thanks for your thoughts! > |
From: Charlie T. <cha...@gm...> - 2018-08-31 12:50:51
|
I'm having Trouble Configuring to Enable Trilinos (DTK_MeshContainer.hpp: No such file or directory) I've attached the configuration files used for libmesh and trilinos, am I doing something wrong? Here's the error when I make libmesh compilation terminated. Makefile:19003: recipe for target 'src/solution_transfer/libmesh_devel_la-dtk_adapter.lo' failed make[1]: *** [src/solution_transfer/libmesh_devel_la-dtk_adapter.lo] Error 1 make[1]: *** Waiting for unfinished jobs.... In file included from ../src/solution_transfer/dtk_evaluator.C:22: ./include/libmesh/dtk_evaluator.h:31:10: fatal error: DTK_MeshContainer.hpp: No such file or directory #include <DTK_MeshContainer.hpp> Thanks for your thoughts! |
From: Renato P. <re...@gm...> - 2018-08-27 22:05:59
|
# git pull origin pull/1836/head On Mon, Aug 27, 2018 at 7:01 PM Alexander Lindsay <ale...@gm...> wrote: > How did you apply my patch? > > On Mon, Aug 27, 2018 at 4:00 PM, Alexander Lindsay < > ale...@gm...> wrote: > >> Yes it is >> >> On Mon, Aug 27, 2018 at 3:59 PM, Renato Poli <re...@gm...> wrote: >> >>> Is that "p"? >>> >>> On Mon, Aug 27, 2018 at 5:51 PM Alexander Lindsay < >>> ale...@gm...> wrote: >>> >>>> Like this? This is how it looks for me. >>>> >>>> On Mon, Aug 27, 2018 at 12:21 PM, Renato Poli <re...@gm...> >>>> wrote: >>>> >>>>> Hi Alexander, >>>>> >>>>> It did run, but the values were not assigned at the right elements. >>>>> Please find a paraview figure attached. >>>>> It was produced by the example I sent (open mesh.e in paraview). >>>>> The pressure subdomain should be a circle in the center. >>>>> >>>>> I would guess the problem lies in lines 1141-2 below (just a guess): >>>>> soln[nv*(nn++) + (var + var_num)] += >>>>> nodal_soln[n]; >>>>> ( >>>>> https://github.com/libMesh/libmesh/pull/1836/files/126feb954ba89c5739794dd286ed8a47c2735be8 >>>>> ) >>>>> >>>>> rgds, >>>>> Renato >>>>> >>>>> >>>>> >>>>> On Mon, Aug 27, 2018 at 12:35 PM Alexander Lindsay < >>>>> ale...@gm...> wrote: >>>>> >>>>>> Renato, please check to see whether >>>>>> https://github.com/libMesh/libmesh/pull/1836 fixes your issue. It >>>>>> appears to work to me on the example you sent >>>>>> >>>>>> On Sat, Aug 25, 2018 at 3:16 PM, Renato Poli <re...@gm...> >>>>>> wrote: >>>>>> >>>>>>> Hi Alexander, >>>>>>> >>>>>>> Please find attached the example you asked. >>>>>>> I used introduction_ex3 as a basis... it got a little messy, I hope >>>>>>> it is enough. >>>>>>> Please let me know otherwise. >>>>>>> >>>>>>> Thanks >>>>>>> Renato >>>>>>> >>>>>>> On Sat, Aug 25, 2018 at 12:42 PM Renato Poli <re...@gm...> >>>>>>> wrote: >>>>>>> >>>>>>>> Sure.... please give me a couple of hours. >>>>>>>> >>>>>>>> On Sat, Aug 25, 2018 at 12:04 PM Alexander Lindsay < >>>>>>>> ale...@gm...> wrote: >>>>>>>> >>>>>>>>> Renato, could you create a minimum example that generates the >>>>>>>>> discontinuous error, and either share it here or create a ticket on github? >>>>>>>>> That would be useful for fixing the issue and adding a test in libmesh to >>>>>>>>> ensure we support the capability. >>>>>>>>> >>>>>>>>> On Sat, Aug 25, 2018 at 8:33 AM, Alexander Lindsay < >>>>>>>>> ale...@gm...> wrote: >>>>>>>>> >>>>>>>>>> Ah yes...key difference between "empty" and "zero"... >>>>>>>>>> >>>>>>>>>> On Aug 25, 2018, at 7:03 AM, Renato Poli <re...@gm...> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> No success. Stack trace below. >>>>>>>>>> >>>>>>>>>> Note that, if I define my variable _only_ on its domain (where there is fluid) it works. >>>>>>>>>> >>>>>>>>>> In this case, the problem is in ExodusII_IO::write_discontinuous_timestep. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> [0]PETSC ERROR: --------------------- Error Message -------------------------------------------------------------- >>>>>>>>>> [0]PETSC ERROR: Object is in wrong state >>>>>>>>>> [0]PETSC ERROR: Matrix is missing diagonal entry 0 >>>>>>>>>> [0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for trouble shooting. >>>>>>>>>> [0]PETSC ERROR: Petsc Release Version 3.7.6, Apr, 24, 2017 >>>>>>>>>> [0]PETSC ERROR: obj/bin/abada_sc11 on a linux-gnu-opt named dev-vb by dev Sat Aug 25 09:55:36 2018 >>>>>>>>>> [0]PETSC ERROR: Configure options --with-mpi-dir=/usr/lib/mpich --with-shared-libraries=1 --with-debugging=yes --download-mumps --download-hypre --download-scalapack --download-spai --download-parms >>>>>>>>>> [0]PETSC ERROR: #1 MatLUFactorSymbolic_SeqAIJ() line 301 in /opt/petsc-3.7.6/src/mat/impls/aij/seq/aijfact.c >>>>>>>>>> [0]PETSC ERROR: #2 MatLUFactorSymbolic() line 2944 in /opt/petsc-3.7.6/src/mat/interface/matrix.c >>>>>>>>>> [0]PETSC ERROR: #3 PCSetUp_LU() line 136 in /opt/petsc-3.7.6/src/ksp/pc/impls/factor/lu/lu.c >>>>>>>>>> [0]PETSC ERROR: #4 PCSetUp() line 968 in /opt/petsc-3.7.6/src/ksp/pc/interface/precon.c >>>>>>>>>> [0]PETSC ERROR: #5 KSPSetUp() line 390 in /opt/petsc-3.7.6/src/ksp/ksp/interface/itfunc.c >>>>>>>>>> [0]PETSC ERROR: #6 KSPSolve() line 599 in /opt/petsc-3.7.6/src/ksp/ksp/interface/itfunc.c >>>>>>>>>> >>>>>>>>>> Thanks, >>>>>>>>>> >>>>>>>>>> Renato >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Fri, Aug 24, 2018 at 11:49 PM Alexander Lindsay < >>>>>>>>>> ale...@gm...> wrote: >>>>>>>>>> >>>>>>>>>>> If you're using PETSc as your underlying solver, try the options >>>>>>>>>>> `-pc_factor_shift_type NONZERO -pc_factor_shift_amount 1e-15` >>>>>>>>>>> >>>>>>>>>>> On Thu, Aug 23, 2018 at 2:58 PM, Renato Poli <re...@gm...> >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi >>>>>>>>>>>> >>>>>>>>>>>> I am getting trouble here again ... really need some help. >>>>>>>>>>>> >>>>>>>>>>>> I have part of the domain without flow (and thus without the >>>>>>>>>>>> pressure >>>>>>>>>>>> variable defined). >>>>>>>>>>>> As I could not export that (could not get >>>>>>>>>>>> write_discontinuous_exodusII to >>>>>>>>>>>> work) I just left the matrix empty, without major impact so far. >>>>>>>>>>>> However, now I am using LU preconditioning, which does not >>>>>>>>>>>> accept empty >>>>>>>>>>>> entries in the diagonal. >>>>>>>>>>>> >>>>>>>>>>>> How can I get through? >>>>>>>>>>>> Any suggestion? >>>>>>>>>>>> >>>>>>>>>>>> Thanks upfront. >>>>>>>>>>>> Renato >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Thu, Aug 16, 2018 at 6:47 PM Renato Poli <re...@gm...> >>>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>> > Hi >>>>>>>>>>>> > >>>>>>>>>>>> > I see the stack trace below when writing a discontinuous >>>>>>>>>>>> timestep >>>>>>>>>>>> > (exo.write_discontinuous_timestep). >>>>>>>>>>>> > It happens when my variable is set only in part of the domain. >>>>>>>>>>>> > No problem arises if I use, instead: >>>>>>>>>>>> exo.write_equation_systems(fname, es) >>>>>>>>>>>> > >>>>>>>>>>>> > Any hint/workaround/idea? >>>>>>>>>>>> > >>>>>>>>>>>> > Thanks, >>>>>>>>>>>> > Renato >>>>>>>>>>>> > >>>>>>>>>>>> > This is how the variable is set. >>>>>>>>>>>> > | std::set<subdomain_id_type> active_subdomains; >>>>>>>>>>>> > | active_subdomains.clear(); >>>>>>>>>>>> > | active_subdomains.insert(SUBDOMAIN_A); >>>>>>>>>>>> > | press_sys.add_variable ("p", SECOND, LAGRANGE, & >>>>>>>>>>>> active_subdomains); >>>>>>>>>>>> > >>>>>>>>>>>> > 0: libMesh::print_trace(std::ostream&) >>>>>>>>>>>> > 1: libMesh::MacroFunctions::report_error(char const*, int, >>>>>>>>>>>> char const*, >>>>>>>>>>>> > char const*) >>>>>>>>>>>> > 2: >>>>>>>>>>>> > >>>>>>>>>>>> libMesh::EquationSystems::build_discontinuous_solution_vector(std::__debug::vector<double, >>>>>>>>>>>> > std::allocator<double> >&, >>>>>>>>>>>> > std::__debug::set<std::__cxx11::basic_string<char, >>>>>>>>>>>> std::char_traits<char>, >>>>>>>>>>>> > std::allocator<char> >, >>>>>>>>>>>> std::less<std::__cxx11::basic_string<char, >>>>>>>>>>>> > std::char_traits<char>, std::allocator<char> > >, >>>>>>>>>>>> > std::allocator<std::__cxx11::basic_string<char, >>>>>>>>>>>> std::char_traits<char>, >>>>>>>>>>>> > std::allocator<char> > > > const*) const >>>>>>>>>>>> > 3: >>>>>>>>>>>> > >>>>>>>>>>>> libMesh::ExodusII_IO::write_discontinuous_exodusII(std::__cxx11::basic_string<char, >>>>>>>>>>>> > std::char_traits<char>, std::allocator<char> > const&, >>>>>>>>>>>> > libMesh::EquationSystems const&, >>>>>>>>>>>> > std::__debug::set<std::__cxx11::basic_string<char, >>>>>>>>>>>> std::char_traits<char>, >>>>>>>>>>>> > std::allocator<char> >, >>>>>>>>>>>> std::less<std::__cxx11::basic_string<char, >>>>>>>>>>>> > std::char_traits<char>, std::allocator<char> > >, >>>>>>>>>>>> > std::allocator<std::__cxx11::basic_string<char, >>>>>>>>>>>> std::char_traits<char>, >>>>>>>>>>>> > std::allocator<char> > > > const*) >>>>>>>>>>>> > 4: >>>>>>>>>>>> > >>>>>>>>>>>> libMesh::ExodusII_IO::write_timestep_discontinuous(std::__cxx11::basic_string<char, >>>>>>>>>>>> > std::char_traits<char>, std::allocator<char> > const&, >>>>>>>>>>>> > libMesh::EquationSystems const&, int, double, >>>>>>>>>>>> > std::__debug::set<std::__cxx11::basic_string<char, >>>>>>>>>>>> std::char_traits<char>, >>>>>>>>>>>> > std::allocator<char> >, >>>>>>>>>>>> std::less<std::__cxx11::basic_string<char, >>>>>>>>>>>> > std::char_traits<char>, std::allocator<char> > >, >>>>>>>>>>>> > std::allocator<std::__cxx11::basic_string<char, >>>>>>>>>>>> std::char_traits<char>, >>>>>>>>>>>> > std::allocator<char> > > > const*) >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> >>>>>>>>>>>> ------------------------------------------------------------------------------ >>>>>>>>>>>> Check out the vibrant tech community on one of the world's most >>>>>>>>>>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot >>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>> Libmesh-users mailing list >>>>>>>>>>>> Lib...@li... >>>>>>>>>>>> https://lists.sourceforge.net/lists/listinfo/libmesh-users >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>> >>>>>> >>>> >> > |
From: Alexander L. <ale...@gm...> - 2018-08-27 22:01:12
|
How did you apply my patch? On Mon, Aug 27, 2018 at 4:00 PM, Alexander Lindsay <ale...@gm... > wrote: > Yes it is > > On Mon, Aug 27, 2018 at 3:59 PM, Renato Poli <re...@gm...> wrote: > >> Is that "p"? >> >> On Mon, Aug 27, 2018 at 5:51 PM Alexander Lindsay < >> ale...@gm...> wrote: >> >>> Like this? This is how it looks for me. >>> >>> On Mon, Aug 27, 2018 at 12:21 PM, Renato Poli <re...@gm...> wrote: >>> >>>> Hi Alexander, >>>> >>>> It did run, but the values were not assigned at the right elements. >>>> Please find a paraview figure attached. >>>> It was produced by the example I sent (open mesh.e in paraview). >>>> The pressure subdomain should be a circle in the center. >>>> >>>> I would guess the problem lies in lines 1141-2 below (just a guess): >>>> soln[nv*(nn++) + (var + var_num)] += >>>> nodal_soln[n]; >>>> (https://github.com/libMesh/libmesh/pull/1836/files/126feb95 >>>> 4ba89c5739794dd286ed8a47c2735be8) >>>> >>>> rgds, >>>> Renato >>>> >>>> >>>> >>>> On Mon, Aug 27, 2018 at 12:35 PM Alexander Lindsay < >>>> ale...@gm...> wrote: >>>> >>>>> Renato, please check to see whether https://github.com/lib >>>>> Mesh/libmesh/pull/1836 fixes your issue. It appears to work to me on >>>>> the example you sent >>>>> >>>>> On Sat, Aug 25, 2018 at 3:16 PM, Renato Poli <re...@gm...> >>>>> wrote: >>>>> >>>>>> Hi Alexander, >>>>>> >>>>>> Please find attached the example you asked. >>>>>> I used introduction_ex3 as a basis... it got a little messy, I hope >>>>>> it is enough. >>>>>> Please let me know otherwise. >>>>>> >>>>>> Thanks >>>>>> Renato >>>>>> >>>>>> On Sat, Aug 25, 2018 at 12:42 PM Renato Poli <re...@gm...> >>>>>> wrote: >>>>>> >>>>>>> Sure.... please give me a couple of hours. >>>>>>> >>>>>>> On Sat, Aug 25, 2018 at 12:04 PM Alexander Lindsay < >>>>>>> ale...@gm...> wrote: >>>>>>> >>>>>>>> Renato, could you create a minimum example that generates the >>>>>>>> discontinuous error, and either share it here or create a ticket on github? >>>>>>>> That would be useful for fixing the issue and adding a test in libmesh to >>>>>>>> ensure we support the capability. >>>>>>>> >>>>>>>> On Sat, Aug 25, 2018 at 8:33 AM, Alexander Lindsay < >>>>>>>> ale...@gm...> wrote: >>>>>>>> >>>>>>>>> Ah yes...key difference between "empty" and "zero"... >>>>>>>>> >>>>>>>>> On Aug 25, 2018, at 7:03 AM, Renato Poli <re...@gm...> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>> No success. Stack trace below. >>>>>>>>> >>>>>>>>> Note that, if I define my variable _only_ on its domain (where there is fluid) it works. >>>>>>>>> >>>>>>>>> In this case, the problem is in ExodusII_IO::write_discontinuous_timestep. >>>>>>>>> >>>>>>>>> >>>>>>>>> [0]PETSC ERROR: --------------------- Error Message -------------------------------------------------------------- >>>>>>>>> [0]PETSC ERROR: Object is in wrong state >>>>>>>>> [0]PETSC ERROR: Matrix is missing diagonal entry 0 >>>>>>>>> [0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for trouble shooting. >>>>>>>>> [0]PETSC ERROR: Petsc Release Version 3.7.6, Apr, 24, 2017 >>>>>>>>> [0]PETSC ERROR: obj/bin/abada_sc11 on a linux-gnu-opt named dev-vb by dev Sat Aug 25 09:55:36 2018 >>>>>>>>> [0]PETSC ERROR: Configure options --with-mpi-dir=/usr/lib/mpich --with-shared-libraries=1 --with-debugging=yes --download-mumps --download-hypre --download-scalapack --download-spai --download-parms >>>>>>>>> [0]PETSC ERROR: #1 MatLUFactorSymbolic_SeqAIJ() line 301 in /opt/petsc-3.7.6/src/mat/impls/aij/seq/aijfact.c >>>>>>>>> [0]PETSC ERROR: #2 MatLUFactorSymbolic() line 2944 in /opt/petsc-3.7.6/src/mat/interface/matrix.c >>>>>>>>> [0]PETSC ERROR: #3 PCSetUp_LU() line 136 in /opt/petsc-3.7.6/src/ksp/pc/impls/factor/lu/lu.c >>>>>>>>> [0]PETSC ERROR: #4 PCSetUp() line 968 in /opt/petsc-3.7.6/src/ksp/pc/interface/precon.c >>>>>>>>> [0]PETSC ERROR: #5 KSPSetUp() line 390 in /opt/petsc-3.7.6/src/ksp/ksp/interface/itfunc.c >>>>>>>>> [0]PETSC ERROR: #6 KSPSolve() line 599 in /opt/petsc-3.7.6/src/ksp/ksp/interface/itfunc.c >>>>>>>>> >>>>>>>>> Thanks, >>>>>>>>> >>>>>>>>> Renato >>>>>>>>> >>>>>>>>> >>>>>>>>> On Fri, Aug 24, 2018 at 11:49 PM Alexander Lindsay < >>>>>>>>> ale...@gm...> wrote: >>>>>>>>> >>>>>>>>>> If you're using PETSc as your underlying solver, try the options >>>>>>>>>> `-pc_factor_shift_type NONZERO -pc_factor_shift_amount 1e-15` >>>>>>>>>> >>>>>>>>>> On Thu, Aug 23, 2018 at 2:58 PM, Renato Poli <re...@gm...> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Hi >>>>>>>>>>> >>>>>>>>>>> I am getting trouble here again ... really need some help. >>>>>>>>>>> >>>>>>>>>>> I have part of the domain without flow (and thus without the >>>>>>>>>>> pressure >>>>>>>>>>> variable defined). >>>>>>>>>>> As I could not export that (could not get >>>>>>>>>>> write_discontinuous_exodusII to >>>>>>>>>>> work) I just left the matrix empty, without major impact so far. >>>>>>>>>>> However, now I am using LU preconditioning, which does not >>>>>>>>>>> accept empty >>>>>>>>>>> entries in the diagonal. >>>>>>>>>>> >>>>>>>>>>> How can I get through? >>>>>>>>>>> Any suggestion? >>>>>>>>>>> >>>>>>>>>>> Thanks upfront. >>>>>>>>>>> Renato >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Thu, Aug 16, 2018 at 6:47 PM Renato Poli <re...@gm...> >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>> > Hi >>>>>>>>>>> > >>>>>>>>>>> > I see the stack trace below when writing a discontinuous >>>>>>>>>>> timestep >>>>>>>>>>> > (exo.write_discontinuous_timestep). >>>>>>>>>>> > It happens when my variable is set only in part of the domain. >>>>>>>>>>> > No problem arises if I use, instead: >>>>>>>>>>> exo.write_equation_systems(fname, es) >>>>>>>>>>> > >>>>>>>>>>> > Any hint/workaround/idea? >>>>>>>>>>> > >>>>>>>>>>> > Thanks, >>>>>>>>>>> > Renato >>>>>>>>>>> > >>>>>>>>>>> > This is how the variable is set. >>>>>>>>>>> > | std::set<subdomain_id_type> active_subdomains; >>>>>>>>>>> > | active_subdomains.clear(); >>>>>>>>>>> > | active_subdomains.insert(SUBDOMAIN_A); >>>>>>>>>>> > | press_sys.add_variable ("p", SECOND, LAGRANGE, & >>>>>>>>>>> active_subdomains); >>>>>>>>>>> > >>>>>>>>>>> > 0: libMesh::print_trace(std::ostream&) >>>>>>>>>>> > 1: libMesh::MacroFunctions::report_error(char const*, int, >>>>>>>>>>> char const*, >>>>>>>>>>> > char const*) >>>>>>>>>>> > 2: >>>>>>>>>>> > libMesh::EquationSystems::build_discontinuous_solution_vecto >>>>>>>>>>> r(std::__debug::vector<double, >>>>>>>>>>> > std::allocator<double> >&, >>>>>>>>>>> > std::__debug::set<std::__cxx11::basic_string<char, >>>>>>>>>>> std::char_traits<char>, >>>>>>>>>>> > std::allocator<char> >, std::less<std::__cxx11::basic_ >>>>>>>>>>> string<char, >>>>>>>>>>> > std::char_traits<char>, std::allocator<char> > >, >>>>>>>>>>> > std::allocator<std::__cxx11::basic_string<char, >>>>>>>>>>> std::char_traits<char>, >>>>>>>>>>> > std::allocator<char> > > > const*) const >>>>>>>>>>> > 3: >>>>>>>>>>> > libMesh::ExodusII_IO::write_discontinuous_exodusII(std::__cx >>>>>>>>>>> x11::basic_string<char, >>>>>>>>>>> > std::char_traits<char>, std::allocator<char> > const&, >>>>>>>>>>> > libMesh::EquationSystems const&, >>>>>>>>>>> > std::__debug::set<std::__cxx11::basic_string<char, >>>>>>>>>>> std::char_traits<char>, >>>>>>>>>>> > std::allocator<char> >, std::less<std::__cxx11::basic_ >>>>>>>>>>> string<char, >>>>>>>>>>> > std::char_traits<char>, std::allocator<char> > >, >>>>>>>>>>> > std::allocator<std::__cxx11::basic_string<char, >>>>>>>>>>> std::char_traits<char>, >>>>>>>>>>> > std::allocator<char> > > > const*) >>>>>>>>>>> > 4: >>>>>>>>>>> > libMesh::ExodusII_IO::write_timestep_discontinuous(std::__cx >>>>>>>>>>> x11::basic_string<char, >>>>>>>>>>> > std::char_traits<char>, std::allocator<char> > const&, >>>>>>>>>>> > libMesh::EquationSystems const&, int, double, >>>>>>>>>>> > std::__debug::set<std::__cxx11::basic_string<char, >>>>>>>>>>> std::char_traits<char>, >>>>>>>>>>> > std::allocator<char> >, std::less<std::__cxx11::basic_ >>>>>>>>>>> string<char, >>>>>>>>>>> > std::char_traits<char>, std::allocator<char> > >, >>>>>>>>>>> > std::allocator<std::__cxx11::basic_string<char, >>>>>>>>>>> std::char_traits<char>, >>>>>>>>>>> > std::allocator<char> > > > const*) >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> ------------------------------------------------------------ >>>>>>>>>>> ------------------ >>>>>>>>>>> Check out the vibrant tech community on one of the world's most >>>>>>>>>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot >>>>>>>>>>> _______________________________________________ >>>>>>>>>>> Libmesh-users mailing list >>>>>>>>>>> Lib...@li... >>>>>>>>>>> https://lists.sourceforge.net/lists/listinfo/libmesh-users >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>> >>>>> >>> > |
From: Alexander L. <ale...@gm...> - 2018-08-27 22:00:51
|
Yes it is On Mon, Aug 27, 2018 at 3:59 PM, Renato Poli <re...@gm...> wrote: > Is that "p"? > > On Mon, Aug 27, 2018 at 5:51 PM Alexander Lindsay < > ale...@gm...> wrote: > >> Like this? This is how it looks for me. >> >> On Mon, Aug 27, 2018 at 12:21 PM, Renato Poli <re...@gm...> wrote: >> >>> Hi Alexander, >>> >>> It did run, but the values were not assigned at the right elements. >>> Please find a paraview figure attached. >>> It was produced by the example I sent (open mesh.e in paraview). >>> The pressure subdomain should be a circle in the center. >>> >>> I would guess the problem lies in lines 1141-2 below (just a guess): >>> soln[nv*(nn++) + (var + var_num)] += >>> nodal_soln[n]; >>> (https://github.com/libMesh/libmesh/pull/1836/files/ >>> 126feb954ba89c5739794dd286ed8a47c2735be8) >>> >>> rgds, >>> Renato >>> >>> >>> >>> On Mon, Aug 27, 2018 at 12:35 PM Alexander Lindsay < >>> ale...@gm...> wrote: >>> >>>> Renato, please check to see whether https://github.com/ >>>> libMesh/libmesh/pull/1836 fixes your issue. It appears to work to me >>>> on the example you sent >>>> >>>> On Sat, Aug 25, 2018 at 3:16 PM, Renato Poli <re...@gm...> wrote: >>>> >>>>> Hi Alexander, >>>>> >>>>> Please find attached the example you asked. >>>>> I used introduction_ex3 as a basis... it got a little messy, I hope it >>>>> is enough. >>>>> Please let me know otherwise. >>>>> >>>>> Thanks >>>>> Renato >>>>> >>>>> On Sat, Aug 25, 2018 at 12:42 PM Renato Poli <re...@gm...> >>>>> wrote: >>>>> >>>>>> Sure.... please give me a couple of hours. >>>>>> >>>>>> On Sat, Aug 25, 2018 at 12:04 PM Alexander Lindsay < >>>>>> ale...@gm...> wrote: >>>>>> >>>>>>> Renato, could you create a minimum example that generates the >>>>>>> discontinuous error, and either share it here or create a ticket on github? >>>>>>> That would be useful for fixing the issue and adding a test in libmesh to >>>>>>> ensure we support the capability. >>>>>>> >>>>>>> On Sat, Aug 25, 2018 at 8:33 AM, Alexander Lindsay < >>>>>>> ale...@gm...> wrote: >>>>>>> >>>>>>>> Ah yes...key difference between "empty" and "zero"... >>>>>>>> >>>>>>>> On Aug 25, 2018, at 7:03 AM, Renato Poli <re...@gm...> wrote: >>>>>>>> >>>>>>>> No success. Stack trace below. >>>>>>>> >>>>>>>> Note that, if I define my variable _only_ on its domain (where there is fluid) it works. >>>>>>>> >>>>>>>> In this case, the problem is in ExodusII_IO::write_discontinuous_timestep. >>>>>>>> >>>>>>>> >>>>>>>> [0]PETSC ERROR: --------------------- Error Message -------------------------------------------------------------- >>>>>>>> [0]PETSC ERROR: Object is in wrong state >>>>>>>> [0]PETSC ERROR: Matrix is missing diagonal entry 0 >>>>>>>> [0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for trouble shooting. >>>>>>>> [0]PETSC ERROR: Petsc Release Version 3.7.6, Apr, 24, 2017 >>>>>>>> [0]PETSC ERROR: obj/bin/abada_sc11 on a linux-gnu-opt named dev-vb by dev Sat Aug 25 09:55:36 2018 >>>>>>>> [0]PETSC ERROR: Configure options --with-mpi-dir=/usr/lib/mpich --with-shared-libraries=1 --with-debugging=yes --download-mumps --download-hypre --download-scalapack --download-spai --download-parms >>>>>>>> [0]PETSC ERROR: #1 MatLUFactorSymbolic_SeqAIJ() line 301 in /opt/petsc-3.7.6/src/mat/impls/aij/seq/aijfact.c >>>>>>>> [0]PETSC ERROR: #2 MatLUFactorSymbolic() line 2944 in /opt/petsc-3.7.6/src/mat/interface/matrix.c >>>>>>>> [0]PETSC ERROR: #3 PCSetUp_LU() line 136 in /opt/petsc-3.7.6/src/ksp/pc/impls/factor/lu/lu.c >>>>>>>> [0]PETSC ERROR: #4 PCSetUp() line 968 in /opt/petsc-3.7.6/src/ksp/pc/interface/precon.c >>>>>>>> [0]PETSC ERROR: #5 KSPSetUp() line 390 in /opt/petsc-3.7.6/src/ksp/ksp/interface/itfunc.c >>>>>>>> [0]PETSC ERROR: #6 KSPSolve() line 599 in /opt/petsc-3.7.6/src/ksp/ksp/interface/itfunc.c >>>>>>>> >>>>>>>> Thanks, >>>>>>>> >>>>>>>> Renato >>>>>>>> >>>>>>>> >>>>>>>> On Fri, Aug 24, 2018 at 11:49 PM Alexander Lindsay < >>>>>>>> ale...@gm...> wrote: >>>>>>>> >>>>>>>>> If you're using PETSc as your underlying solver, try the options >>>>>>>>> `-pc_factor_shift_type NONZERO -pc_factor_shift_amount 1e-15` >>>>>>>>> >>>>>>>>> On Thu, Aug 23, 2018 at 2:58 PM, Renato Poli <re...@gm...> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Hi >>>>>>>>>> >>>>>>>>>> I am getting trouble here again ... really need some help. >>>>>>>>>> >>>>>>>>>> I have part of the domain without flow (and thus without the >>>>>>>>>> pressure >>>>>>>>>> variable defined). >>>>>>>>>> As I could not export that (could not get >>>>>>>>>> write_discontinuous_exodusII to >>>>>>>>>> work) I just left the matrix empty, without major impact so far. >>>>>>>>>> However, now I am using LU preconditioning, which does not accept >>>>>>>>>> empty >>>>>>>>>> entries in the diagonal. >>>>>>>>>> >>>>>>>>>> How can I get through? >>>>>>>>>> Any suggestion? >>>>>>>>>> >>>>>>>>>> Thanks upfront. >>>>>>>>>> Renato >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Thu, Aug 16, 2018 at 6:47 PM Renato Poli <re...@gm...> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> > Hi >>>>>>>>>> > >>>>>>>>>> > I see the stack trace below when writing a discontinuous >>>>>>>>>> timestep >>>>>>>>>> > (exo.write_discontinuous_timestep). >>>>>>>>>> > It happens when my variable is set only in part of the domain. >>>>>>>>>> > No problem arises if I use, instead: exo.write_equation_systems(fname, >>>>>>>>>> es) >>>>>>>>>> > >>>>>>>>>> > Any hint/workaround/idea? >>>>>>>>>> > >>>>>>>>>> > Thanks, >>>>>>>>>> > Renato >>>>>>>>>> > >>>>>>>>>> > This is how the variable is set. >>>>>>>>>> > | std::set<subdomain_id_type> active_subdomains; >>>>>>>>>> > | active_subdomains.clear(); >>>>>>>>>> > | active_subdomains.insert(SUBDOMAIN_A); >>>>>>>>>> > | press_sys.add_variable ("p", SECOND, LAGRANGE, & >>>>>>>>>> active_subdomains); >>>>>>>>>> > >>>>>>>>>> > 0: libMesh::print_trace(std::ostream&) >>>>>>>>>> > 1: libMesh::MacroFunctions::report_error(char const*, int, >>>>>>>>>> char const*, >>>>>>>>>> > char const*) >>>>>>>>>> > 2: >>>>>>>>>> > libMesh::EquationSystems::build_discontinuous_solution_ >>>>>>>>>> vector(std::__debug::vector<double, >>>>>>>>>> > std::allocator<double> >&, >>>>>>>>>> > std::__debug::set<std::__cxx11::basic_string<char, >>>>>>>>>> std::char_traits<char>, >>>>>>>>>> > std::allocator<char> >, std::less<std::__cxx11::basic_ >>>>>>>>>> string<char, >>>>>>>>>> > std::char_traits<char>, std::allocator<char> > >, >>>>>>>>>> > std::allocator<std::__cxx11::basic_string<char, >>>>>>>>>> std::char_traits<char>, >>>>>>>>>> > std::allocator<char> > > > const*) const >>>>>>>>>> > 3: >>>>>>>>>> > libMesh::ExodusII_IO::write_discontinuous_exodusII(std::__ >>>>>>>>>> cxx11::basic_string<char, >>>>>>>>>> > std::char_traits<char>, std::allocator<char> > const&, >>>>>>>>>> > libMesh::EquationSystems const&, >>>>>>>>>> > std::__debug::set<std::__cxx11::basic_string<char, >>>>>>>>>> std::char_traits<char>, >>>>>>>>>> > std::allocator<char> >, std::less<std::__cxx11::basic_ >>>>>>>>>> string<char, >>>>>>>>>> > std::char_traits<char>, std::allocator<char> > >, >>>>>>>>>> > std::allocator<std::__cxx11::basic_string<char, >>>>>>>>>> std::char_traits<char>, >>>>>>>>>> > std::allocator<char> > > > const*) >>>>>>>>>> > 4: >>>>>>>>>> > libMesh::ExodusII_IO::write_timestep_discontinuous(std::__ >>>>>>>>>> cxx11::basic_string<char, >>>>>>>>>> > std::char_traits<char>, std::allocator<char> > const&, >>>>>>>>>> > libMesh::EquationSystems const&, int, double, >>>>>>>>>> > std::__debug::set<std::__cxx11::basic_string<char, >>>>>>>>>> std::char_traits<char>, >>>>>>>>>> > std::allocator<char> >, std::less<std::__cxx11::basic_ >>>>>>>>>> string<char, >>>>>>>>>> > std::char_traits<char>, std::allocator<char> > >, >>>>>>>>>> > std::allocator<std::__cxx11::basic_string<char, >>>>>>>>>> std::char_traits<char>, >>>>>>>>>> > std::allocator<char> > > > const*) >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> ------------------------------------------------------------ >>>>>>>>>> ------------------ >>>>>>>>>> Check out the vibrant tech community on one of the world's most >>>>>>>>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot >>>>>>>>>> _______________________________________________ >>>>>>>>>> Libmesh-users mailing list >>>>>>>>>> Lib...@li... >>>>>>>>>> https://lists.sourceforge.net/lists/listinfo/libmesh-users >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>> >>>> >> |
From: Renato P. <re...@gm...> - 2018-08-27 21:59:57
|
Is that "p"? On Mon, Aug 27, 2018 at 5:51 PM Alexander Lindsay <ale...@gm...> wrote: > Like this? This is how it looks for me. > > On Mon, Aug 27, 2018 at 12:21 PM, Renato Poli <re...@gm...> wrote: > >> Hi Alexander, >> >> It did run, but the values were not assigned at the right elements. >> Please find a paraview figure attached. >> It was produced by the example I sent (open mesh.e in paraview). >> The pressure subdomain should be a circle in the center. >> >> I would guess the problem lies in lines 1141-2 below (just a guess): >> soln[nv*(nn++) + (var + var_num)] += >> nodal_soln[n]; >> ( >> https://github.com/libMesh/libmesh/pull/1836/files/126feb954ba89c5739794dd286ed8a47c2735be8 >> ) >> >> rgds, >> Renato >> >> >> >> On Mon, Aug 27, 2018 at 12:35 PM Alexander Lindsay < >> ale...@gm...> wrote: >> >>> Renato, please check to see whether >>> https://github.com/libMesh/libmesh/pull/1836 fixes your issue. It >>> appears to work to me on the example you sent >>> >>> On Sat, Aug 25, 2018 at 3:16 PM, Renato Poli <re...@gm...> wrote: >>> >>>> Hi Alexander, >>>> >>>> Please find attached the example you asked. >>>> I used introduction_ex3 as a basis... it got a little messy, I hope it >>>> is enough. >>>> Please let me know otherwise. >>>> >>>> Thanks >>>> Renato >>>> >>>> On Sat, Aug 25, 2018 at 12:42 PM Renato Poli <re...@gm...> wrote: >>>> >>>>> Sure.... please give me a couple of hours. >>>>> >>>>> On Sat, Aug 25, 2018 at 12:04 PM Alexander Lindsay < >>>>> ale...@gm...> wrote: >>>>> >>>>>> Renato, could you create a minimum example that generates the >>>>>> discontinuous error, and either share it here or create a ticket on github? >>>>>> That would be useful for fixing the issue and adding a test in libmesh to >>>>>> ensure we support the capability. >>>>>> >>>>>> On Sat, Aug 25, 2018 at 8:33 AM, Alexander Lindsay < >>>>>> ale...@gm...> wrote: >>>>>> >>>>>>> Ah yes...key difference between "empty" and "zero"... >>>>>>> >>>>>>> On Aug 25, 2018, at 7:03 AM, Renato Poli <re...@gm...> wrote: >>>>>>> >>>>>>> No success. Stack trace below. >>>>>>> >>>>>>> Note that, if I define my variable _only_ on its domain (where there is fluid) it works. >>>>>>> >>>>>>> In this case, the problem is in ExodusII_IO::write_discontinuous_timestep. >>>>>>> >>>>>>> >>>>>>> [0]PETSC ERROR: --------------------- Error Message -------------------------------------------------------------- >>>>>>> [0]PETSC ERROR: Object is in wrong state >>>>>>> [0]PETSC ERROR: Matrix is missing diagonal entry 0 >>>>>>> [0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for trouble shooting. >>>>>>> [0]PETSC ERROR: Petsc Release Version 3.7.6, Apr, 24, 2017 >>>>>>> [0]PETSC ERROR: obj/bin/abada_sc11 on a linux-gnu-opt named dev-vb by dev Sat Aug 25 09:55:36 2018 >>>>>>> [0]PETSC ERROR: Configure options --with-mpi-dir=/usr/lib/mpich --with-shared-libraries=1 --with-debugging=yes --download-mumps --download-hypre --download-scalapack --download-spai --download-parms >>>>>>> [0]PETSC ERROR: #1 MatLUFactorSymbolic_SeqAIJ() line 301 in /opt/petsc-3.7.6/src/mat/impls/aij/seq/aijfact.c >>>>>>> [0]PETSC ERROR: #2 MatLUFactorSymbolic() line 2944 in /opt/petsc-3.7.6/src/mat/interface/matrix.c >>>>>>> [0]PETSC ERROR: #3 PCSetUp_LU() line 136 in /opt/petsc-3.7.6/src/ksp/pc/impls/factor/lu/lu.c >>>>>>> [0]PETSC ERROR: #4 PCSetUp() line 968 in /opt/petsc-3.7.6/src/ksp/pc/interface/precon.c >>>>>>> [0]PETSC ERROR: #5 KSPSetUp() line 390 in /opt/petsc-3.7.6/src/ksp/ksp/interface/itfunc.c >>>>>>> [0]PETSC ERROR: #6 KSPSolve() line 599 in /opt/petsc-3.7.6/src/ksp/ksp/interface/itfunc.c >>>>>>> >>>>>>> Thanks, >>>>>>> >>>>>>> Renato >>>>>>> >>>>>>> >>>>>>> On Fri, Aug 24, 2018 at 11:49 PM Alexander Lindsay < >>>>>>> ale...@gm...> wrote: >>>>>>> >>>>>>>> If you're using PETSc as your underlying solver, try the options >>>>>>>> `-pc_factor_shift_type NONZERO -pc_factor_shift_amount 1e-15` >>>>>>>> >>>>>>>> On Thu, Aug 23, 2018 at 2:58 PM, Renato Poli <re...@gm...> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Hi >>>>>>>>> >>>>>>>>> I am getting trouble here again ... really need some help. >>>>>>>>> >>>>>>>>> I have part of the domain without flow (and thus without the >>>>>>>>> pressure >>>>>>>>> variable defined). >>>>>>>>> As I could not export that (could not get >>>>>>>>> write_discontinuous_exodusII to >>>>>>>>> work) I just left the matrix empty, without major impact so far. >>>>>>>>> However, now I am using LU preconditioning, which does not accept >>>>>>>>> empty >>>>>>>>> entries in the diagonal. >>>>>>>>> >>>>>>>>> How can I get through? >>>>>>>>> Any suggestion? >>>>>>>>> >>>>>>>>> Thanks upfront. >>>>>>>>> Renato >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Thu, Aug 16, 2018 at 6:47 PM Renato Poli <re...@gm...> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>> > Hi >>>>>>>>> > >>>>>>>>> > I see the stack trace below when writing a discontinuous timestep >>>>>>>>> > (exo.write_discontinuous_timestep). >>>>>>>>> > It happens when my variable is set only in part of the domain. >>>>>>>>> > No problem arises if I use, instead: >>>>>>>>> exo.write_equation_systems(fname, es) >>>>>>>>> > >>>>>>>>> > Any hint/workaround/idea? >>>>>>>>> > >>>>>>>>> > Thanks, >>>>>>>>> > Renato >>>>>>>>> > >>>>>>>>> > This is how the variable is set. >>>>>>>>> > | std::set<subdomain_id_type> active_subdomains; >>>>>>>>> > | active_subdomains.clear(); >>>>>>>>> > | active_subdomains.insert(SUBDOMAIN_A); >>>>>>>>> > | press_sys.add_variable ("p", SECOND, LAGRANGE, & >>>>>>>>> active_subdomains); >>>>>>>>> > >>>>>>>>> > 0: libMesh::print_trace(std::ostream&) >>>>>>>>> > 1: libMesh::MacroFunctions::report_error(char const*, int, char >>>>>>>>> const*, >>>>>>>>> > char const*) >>>>>>>>> > 2: >>>>>>>>> > >>>>>>>>> libMesh::EquationSystems::build_discontinuous_solution_vector(std::__debug::vector<double, >>>>>>>>> > std::allocator<double> >&, >>>>>>>>> > std::__debug::set<std::__cxx11::basic_string<char, >>>>>>>>> std::char_traits<char>, >>>>>>>>> > std::allocator<char> >, >>>>>>>>> std::less<std::__cxx11::basic_string<char, >>>>>>>>> > std::char_traits<char>, std::allocator<char> > >, >>>>>>>>> > std::allocator<std::__cxx11::basic_string<char, >>>>>>>>> std::char_traits<char>, >>>>>>>>> > std::allocator<char> > > > const*) const >>>>>>>>> > 3: >>>>>>>>> > >>>>>>>>> libMesh::ExodusII_IO::write_discontinuous_exodusII(std::__cxx11::basic_string<char, >>>>>>>>> > std::char_traits<char>, std::allocator<char> > const&, >>>>>>>>> > libMesh::EquationSystems const&, >>>>>>>>> > std::__debug::set<std::__cxx11::basic_string<char, >>>>>>>>> std::char_traits<char>, >>>>>>>>> > std::allocator<char> >, >>>>>>>>> std::less<std::__cxx11::basic_string<char, >>>>>>>>> > std::char_traits<char>, std::allocator<char> > >, >>>>>>>>> > std::allocator<std::__cxx11::basic_string<char, >>>>>>>>> std::char_traits<char>, >>>>>>>>> > std::allocator<char> > > > const*) >>>>>>>>> > 4: >>>>>>>>> > >>>>>>>>> libMesh::ExodusII_IO::write_timestep_discontinuous(std::__cxx11::basic_string<char, >>>>>>>>> > std::char_traits<char>, std::allocator<char> > const&, >>>>>>>>> > libMesh::EquationSystems const&, int, double, >>>>>>>>> > std::__debug::set<std::__cxx11::basic_string<char, >>>>>>>>> std::char_traits<char>, >>>>>>>>> > std::allocator<char> >, >>>>>>>>> std::less<std::__cxx11::basic_string<char, >>>>>>>>> > std::char_traits<char>, std::allocator<char> > >, >>>>>>>>> > std::allocator<std::__cxx11::basic_string<char, >>>>>>>>> std::char_traits<char>, >>>>>>>>> > std::allocator<char> > > > const*) >>>>>>>>> > >>>>>>>>> > >>>>>>>>> >>>>>>>>> ------------------------------------------------------------------------------ >>>>>>>>> Check out the vibrant tech community on one of the world's most >>>>>>>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot >>>>>>>>> _______________________________________________ >>>>>>>>> Libmesh-users mailing list >>>>>>>>> Lib...@li... >>>>>>>>> https://lists.sourceforge.net/lists/listinfo/libmesh-users >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>> >>> > |
From: Alexander L. <ale...@gm...> - 2018-08-27 20:51:56
|
Like this? This is how it looks for me. On Mon, Aug 27, 2018 at 12:21 PM, Renato Poli <re...@gm...> wrote: > Hi Alexander, > > It did run, but the values were not assigned at the right elements. > Please find a paraview figure attached. > It was produced by the example I sent (open mesh.e in paraview). > The pressure subdomain should be a circle in the center. > > I would guess the problem lies in lines 1141-2 below (just a guess): > soln[nv*(nn++) + (var + var_num)] += > nodal_soln[n]; > (https://github.com/libMesh/libmesh/pull/1836/files/ > 126feb954ba89c5739794dd286ed8a47c2735be8) > > rgds, > Renato > > > > On Mon, Aug 27, 2018 at 12:35 PM Alexander Lindsay < > ale...@gm...> wrote: > >> Renato, please check to see whether https://github.com/ >> libMesh/libmesh/pull/1836 fixes your issue. It appears to work to me on >> the example you sent >> >> On Sat, Aug 25, 2018 at 3:16 PM, Renato Poli <re...@gm...> wrote: >> >>> Hi Alexander, >>> >>> Please find attached the example you asked. >>> I used introduction_ex3 as a basis... it got a little messy, I hope it >>> is enough. >>> Please let me know otherwise. >>> >>> Thanks >>> Renato >>> >>> On Sat, Aug 25, 2018 at 12:42 PM Renato Poli <re...@gm...> wrote: >>> >>>> Sure.... please give me a couple of hours. >>>> >>>> On Sat, Aug 25, 2018 at 12:04 PM Alexander Lindsay < >>>> ale...@gm...> wrote: >>>> >>>>> Renato, could you create a minimum example that generates the >>>>> discontinuous error, and either share it here or create a ticket on github? >>>>> That would be useful for fixing the issue and adding a test in libmesh to >>>>> ensure we support the capability. >>>>> >>>>> On Sat, Aug 25, 2018 at 8:33 AM, Alexander Lindsay < >>>>> ale...@gm...> wrote: >>>>> >>>>>> Ah yes...key difference between "empty" and "zero"... >>>>>> >>>>>> On Aug 25, 2018, at 7:03 AM, Renato Poli <re...@gm...> wrote: >>>>>> >>>>>> No success. Stack trace below. >>>>>> >>>>>> Note that, if I define my variable _only_ on its domain (where there is fluid) it works. >>>>>> >>>>>> In this case, the problem is in ExodusII_IO::write_discontinuous_timestep. >>>>>> >>>>>> >>>>>> [0]PETSC ERROR: --------------------- Error Message -------------------------------------------------------------- >>>>>> [0]PETSC ERROR: Object is in wrong state >>>>>> [0]PETSC ERROR: Matrix is missing diagonal entry 0 >>>>>> [0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for trouble shooting. >>>>>> [0]PETSC ERROR: Petsc Release Version 3.7.6, Apr, 24, 2017 >>>>>> [0]PETSC ERROR: obj/bin/abada_sc11 on a linux-gnu-opt named dev-vb by dev Sat Aug 25 09:55:36 2018 >>>>>> [0]PETSC ERROR: Configure options --with-mpi-dir=/usr/lib/mpich --with-shared-libraries=1 --with-debugging=yes --download-mumps --download-hypre --download-scalapack --download-spai --download-parms >>>>>> [0]PETSC ERROR: #1 MatLUFactorSymbolic_SeqAIJ() line 301 in /opt/petsc-3.7.6/src/mat/impls/aij/seq/aijfact.c >>>>>> [0]PETSC ERROR: #2 MatLUFactorSymbolic() line 2944 in /opt/petsc-3.7.6/src/mat/interface/matrix.c >>>>>> [0]PETSC ERROR: #3 PCSetUp_LU() line 136 in /opt/petsc-3.7.6/src/ksp/pc/impls/factor/lu/lu.c >>>>>> [0]PETSC ERROR: #4 PCSetUp() line 968 in /opt/petsc-3.7.6/src/ksp/pc/interface/precon.c >>>>>> [0]PETSC ERROR: #5 KSPSetUp() line 390 in /opt/petsc-3.7.6/src/ksp/ksp/interface/itfunc.c >>>>>> [0]PETSC ERROR: #6 KSPSolve() line 599 in /opt/petsc-3.7.6/src/ksp/ksp/interface/itfunc.c >>>>>> >>>>>> Thanks, >>>>>> >>>>>> Renato >>>>>> >>>>>> >>>>>> On Fri, Aug 24, 2018 at 11:49 PM Alexander Lindsay < >>>>>> ale...@gm...> wrote: >>>>>> >>>>>>> If you're using PETSc as your underlying solver, try the options >>>>>>> `-pc_factor_shift_type NONZERO -pc_factor_shift_amount 1e-15` >>>>>>> >>>>>>> On Thu, Aug 23, 2018 at 2:58 PM, Renato Poli <re...@gm...> >>>>>>> wrote: >>>>>>> >>>>>>>> Hi >>>>>>>> >>>>>>>> I am getting trouble here again ... really need some help. >>>>>>>> >>>>>>>> I have part of the domain without flow (and thus without the >>>>>>>> pressure >>>>>>>> variable defined). >>>>>>>> As I could not export that (could not get >>>>>>>> write_discontinuous_exodusII to >>>>>>>> work) I just left the matrix empty, without major impact so far. >>>>>>>> However, now I am using LU preconditioning, which does not accept >>>>>>>> empty >>>>>>>> entries in the diagonal. >>>>>>>> >>>>>>>> How can I get through? >>>>>>>> Any suggestion? >>>>>>>> >>>>>>>> Thanks upfront. >>>>>>>> Renato >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Thu, Aug 16, 2018 at 6:47 PM Renato Poli <re...@gm...> >>>>>>>> wrote: >>>>>>>> >>>>>>>> > Hi >>>>>>>> > >>>>>>>> > I see the stack trace below when writing a discontinuous timestep >>>>>>>> > (exo.write_discontinuous_timestep). >>>>>>>> > It happens when my variable is set only in part of the domain. >>>>>>>> > No problem arises if I use, instead: exo.write_equation_systems(fname, >>>>>>>> es) >>>>>>>> > >>>>>>>> > Any hint/workaround/idea? >>>>>>>> > >>>>>>>> > Thanks, >>>>>>>> > Renato >>>>>>>> > >>>>>>>> > This is how the variable is set. >>>>>>>> > | std::set<subdomain_id_type> active_subdomains; >>>>>>>> > | active_subdomains.clear(); >>>>>>>> > | active_subdomains.insert(SUBDOMAIN_A); >>>>>>>> > | press_sys.add_variable ("p", SECOND, LAGRANGE, & >>>>>>>> active_subdomains); >>>>>>>> > >>>>>>>> > 0: libMesh::print_trace(std::ostream&) >>>>>>>> > 1: libMesh::MacroFunctions::report_error(char const*, int, char >>>>>>>> const*, >>>>>>>> > char const*) >>>>>>>> > 2: >>>>>>>> > libMesh::EquationSystems::build_discontinuous_solution_ >>>>>>>> vector(std::__debug::vector<double, >>>>>>>> > std::allocator<double> >&, >>>>>>>> > std::__debug::set<std::__cxx11::basic_string<char, >>>>>>>> std::char_traits<char>, >>>>>>>> > std::allocator<char> >, std::less<std::__cxx11::basic_ >>>>>>>> string<char, >>>>>>>> > std::char_traits<char>, std::allocator<char> > >, >>>>>>>> > std::allocator<std::__cxx11::basic_string<char, >>>>>>>> std::char_traits<char>, >>>>>>>> > std::allocator<char> > > > const*) const >>>>>>>> > 3: >>>>>>>> > libMesh::ExodusII_IO::write_discontinuous_exodusII(std::__ >>>>>>>> cxx11::basic_string<char, >>>>>>>> > std::char_traits<char>, std::allocator<char> > const&, >>>>>>>> > libMesh::EquationSystems const&, >>>>>>>> > std::__debug::set<std::__cxx11::basic_string<char, >>>>>>>> std::char_traits<char>, >>>>>>>> > std::allocator<char> >, std::less<std::__cxx11::basic_ >>>>>>>> string<char, >>>>>>>> > std::char_traits<char>, std::allocator<char> > >, >>>>>>>> > std::allocator<std::__cxx11::basic_string<char, >>>>>>>> std::char_traits<char>, >>>>>>>> > std::allocator<char> > > > const*) >>>>>>>> > 4: >>>>>>>> > libMesh::ExodusII_IO::write_timestep_discontinuous(std::__ >>>>>>>> cxx11::basic_string<char, >>>>>>>> > std::char_traits<char>, std::allocator<char> > const&, >>>>>>>> > libMesh::EquationSystems const&, int, double, >>>>>>>> > std::__debug::set<std::__cxx11::basic_string<char, >>>>>>>> std::char_traits<char>, >>>>>>>> > std::allocator<char> >, std::less<std::__cxx11::basic_ >>>>>>>> string<char, >>>>>>>> > std::char_traits<char>, std::allocator<char> > >, >>>>>>>> > std::allocator<std::__cxx11::basic_string<char, >>>>>>>> std::char_traits<char>, >>>>>>>> > std::allocator<char> > > > const*) >>>>>>>> > >>>>>>>> > >>>>>>>> ------------------------------------------------------------ >>>>>>>> ------------------ >>>>>>>> Check out the vibrant tech community on one of the world's most >>>>>>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot >>>>>>>> _______________________________________________ >>>>>>>> Libmesh-users mailing list >>>>>>>> Lib...@li... >>>>>>>> https://lists.sourceforge.net/lists/listinfo/libmesh-users >>>>>>>> >>>>>>> >>>>>>> >>>>> >> |