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: Renato P. <re...@gm...> - 2019-11-21 21:10:13
|
Hi all, I have a doubt on L2 projection between meshes with split dofs. I am currently using the following code to project values from one mesh to another more refined one (I perform refinement myself): MeshFunction * mesh_func = new MeshFunction( . . . ); mesh_func->init(); mesh_func->enable_out_of_mesh_mode( 0 ); sys.project_solution( ... ) I can see it interpolates the projected values based on the coordinate of the dofs. Is that so? It happens that in some coordinates I have duplicated dofs representing fractures. Displacements are different on both sides of the fracture even though their coordinates are the same. Can you see any smart-hack to avoid the interpolation _only_ on fracture nodes? Or should I rewrite the whole 'project_solution' with my own stuff? Thanks, Renato |
From: Stogner, R. H <roy...@ic...> - 2019-11-21 16:30:14
|
On Wed, 20 Nov 2019, Stogner, Roy H wrote: > On Tue, 19 Nov 2019, Povolotskyi, Mykhailo wrote: > >> I can build petsc with -with-mpi=0 >> >> Then I configured libmesh with --enable_petsc. >> >> Libmesh took mpiuni implementation from PETSc. >> >> 1.4.1 was compiled okay, and my application works fine. >> >> 1.5.0 had compilation errors, I could not built in. > > Let me know the details? I'll try it myself now and see what happens > for me. I see one bit of breakage and a few warnings; they're fixed in https://github.com/libMesh/libmesh/pull/2346 I've also cherry-picked them onto a v1.5.1_branch - I don't know when we'll want to tag and release that but you could use the branch now if you want something that's got the fixes but is newer than 1.4.1 and safer than the current git master. --- Roy |
From: Stogner, R. H <roy...@ic...> - 2019-11-20 16:54:39
|
On Tue, 19 Nov 2019, Povolotskyi, Mykhailo wrote: > I can build petsc with -with-mpi=0 > > Then I configured libmesh with --enable_petsc. > > Libmesh took mpiuni implementation from PETSc. > > 1.4.1 was compiled okay, and my application works fine. > > 1.5.0 had compilation errors, I could not built in. Let me know the details? I'll try it myself now and see what happens for me. --- Roy |
From: Povolotskyi, M. <mpo...@pu...> - 2019-11-19 23:45:38
|
Here is what I found. I can build petsc with -with-mpi=0 Then I configured libmesh with --enable_petsc. Libmesh took mpiuni implementation from PETSc. 1.4.1 was compiled okay, and my application works fine. 1.5.0 had compilation errors, I could not built in. On 11/19/2019 6:05 PM, Stogner, Roy H wrote: > On Tue, 19 Nov 2019, Povolotskyi, Mykhailo wrote: > >> is it possible to build petsc without MPI and configure libmesh with >> --enable_petsc and --disable_mpi? > In theory, yes. > > In practice, I don't think that configuration is still in CI, so it > wouldn't surprise me if 1.5.0 or master or both were broken in that > case. If you run into any problems, please let us know! > --- > Roy |
From: Stogner, R. H <roy...@ic...> - 2019-11-19 23:05:27
|
On Tue, 19 Nov 2019, Povolotskyi, Mykhailo wrote: > is it possible to build petsc without MPI and configure libmesh with > --enable_petsc and --disable_mpi? In theory, yes. In practice, I don't think that configuration is still in CI, so it wouldn't surprise me if 1.5.0 or master or both were broken in that case. If you run into any problems, please let us know! --- Roy |
From: Povolotskyi, M. <mpo...@pu...> - 2019-11-19 22:55:49
|
Hello, is it possible to build petsc without MPI and configure libmesh with --enable_petsc and --disable_mpi? Thank you, Michael. |
From: gmail <a.m...@gm...> - 2019-11-06 17:44:40
|
Hi, > On Nov 6, 2019, at 12:27 PM, Stogner, Roy H <roy...@ic...> wrote: > > > On Wed, 6 Nov 2019, gmail wrote: > >> I noticed that periodic BC does not work for FEClough. I see the >> functions for it but I’m guessing it was never implemented. > > Could you be more specific? > FEGenericBase::compute_periodic_constraints is supposed to work for > every scalar-valued FE type. I’m doing a nonlinear mixed laplacian and bilaplacian with PetscDM. My energy is something like: E=\int \left(w(\phi)+A(\nabla\phi/|\nabla\phi)^2 \xi^2 |\nabla\phi|^2 +\beta\xi^4 |\nabla^2\phi|^2 \right) dx (1) where w is a polynomial and A is a messy scalar function of vector the normal to \phi (\nabla\phi/|\nabla\phi). I’m trying to solve the nonlinear Euler-Lagrange \partial E/\partial \phi (\tilde{\phi})=0 \forall\tilde{\phi} (2) The natural boundary condition of this gives some messy flux on the boundary = 0. No when I try to solve (2) with \phi interpolated with FEClough, if I enforce periodicity it does not work and gives me exactly the same solution as though the periodic boundary is not there. When I do the same with \beta\equiv0 and solve (2) with FELagrange and periodic it works perfectly as expected. > >> My question is wether periodic BCs do work for FEHermite or is there >> a reason why the current implementation would not work for C1 >> basses. > > We combine Hermite bases with periodic BCs in miscellaneous ex7, > though I don't think we have good enough assertion coverage of the > results for me to swear there's been no regressions, especially if > you're correct and something's no longer working with the > Clough-Tocher basis. Thanks. I guess to reproduce the error, I can try to replace Hermite with Clough-Tocher and see if this gives the same output! > --- > Roy |
From: Stogner, R. H <roy...@ic...> - 2019-11-06 17:27:49
|
On Wed, 6 Nov 2019, gmail wrote: > I noticed that periodic BC does not work for FEClough. I see the > functions for it but I’m guessing it was never implemented. Could you be more specific? FEGenericBase::compute_periodic_constraints is supposed to work for every scalar-valued FE type. > My question is wether periodic BCs do work for FEHermite or is there > a reason why the current implementation would not work for C1 > basses. We combine Hermite bases with periodic BCs in miscellaneous ex7, though I don't think we have good enough assertion coverage of the results for me to swear there's been no regressions, especially if you're correct and something's no longer working with the Clough-Tocher basis. --- Roy |
From: gmail <a.m...@gm...> - 2019-11-06 13:57:54
|
Hi, I noticed that periodic BC does not work for FEClough. I see the functions for it but I’m guessing it was never implemented. My question is wether periodic BCs do work for FEHermite or is there a reason why the current implementation would not work for C1 basses. Thanks as always, Ata |
From: Yuxiang W. <yw...@vi...> - 2019-10-30 22:01:04
|
Created ticket 2315: https://github.com/libMesh/libmesh/issues/2315 And submitted PR 2316: https://github.com/libMesh/libmesh/pull/2316 On Wed, Oct 30, 2019 at 2:48 PM Yuxiang Wang <yw...@vi...> wrote: > Thank you John for looking at it! I have been reading abaqus_io.C and > think I found out why. > > There are two ways for ABAQUS to define the surface and only #1 is > supported by libMesh now: > 1) By specifying elem_id, side_id. This is the currently supported one, > for example "391, S2" > 2) By specifying elemset_name, side_id. This is NOT currently supported, > and looks like "Elset_1, S3". This will probably be internally expanded to > the format like #1: it will find all the elem_ids in the element set of > Elset_1, and use S3 for all of them. > > We added a few lines and this now works with the #2 as well. Should I > create a ticket and a pull request? > > Best, > Shawn > > On Wed, Oct 30, 2019 at 6:07 AM John Peterson <jwp...@gm...> > wrote: > >> Hi Yuxiang, >> >> I will try and take a look at this when I get a chance... it's likely >> that there is a bug in our Abaqus reader. There is a certain amount of >> variation allowed in the formatting of Abaqus files, and we may not support >> exactly the format you are using. >> >> -- >> John >> >> >> On Tue, Oct 29, 2019 at 3:26 PM Yuxiang Wang <yw...@vi...> wrote: >> >>> Dear all, >>> >>> I noticed that whenever I have *Surface in the ABAQUS .inp file, libmesh >>> cannot read it. I thought this was implemented according to here: >>> >>> https://libmesh.github.io/doxygen/classlibMesh_1_1AbaqusIO.html#a2a125c1845edc4c3a6fad266fc76cbfd >>> >>> >>> I have a very short dummy mesh (9 nodes in a unit cube) and a short >>> libmesh >>> C++ codethat I tested with (attached). whenever I run this with the >>> example >>> file, it says: >>> >>> Stream is bad! Perhaps the file: testcube.inp does not exist? >>> >>> Could anyone please help comment? >>> >>> Best, >>> Shawn >>> >> >> > > -- > Yuxiang "Shawn" Wang, PhD > yw...@vi... > +1 (434) 284-0836 > -- Yuxiang "Shawn" Wang, PhD yw...@vi... +1 (434) 284-0836 |
From: John P. <jwp...@gm...> - 2019-10-30 21:59:58
|
On Wed, Oct 30, 2019 at 4:48 PM Yuxiang Wang <yw...@vi...> wrote: > Thank you John for looking at it! I have been reading abaqus_io.C and > think I found out why. > > There are two ways for ABAQUS to define the surface and only #1 is > supported by libMesh now: > 1) By specifying elem_id, side_id. This is the currently supported one, > for example "391, S2" > 2) By specifying elemset_name, side_id. This is NOT currently supported, > and looks like "Elset_1, S3". This will probably be internally expanded to > the format like #1: it will find all the elem_ids in the element set of > Elset_1, and use S3 for all of them. > > We added a few lines and this now works with the #2 as well. Should I > create a ticket and a pull request? > Sure, that would be great. Thanks, John |
From: Yuxiang W. <yw...@vi...> - 2019-10-30 21:48:54
|
Thank you John for looking at it! I have been reading abaqus_io.C and think I found out why. There are two ways for ABAQUS to define the surface and only #1 is supported by libMesh now: 1) By specifying elem_id, side_id. This is the currently supported one, for example "391, S2" 2) By specifying elemset_name, side_id. This is NOT currently supported, and looks like "Elset_1, S3". This will probably be internally expanded to the format like #1: it will find all the elem_ids in the element set of Elset_1, and use S3 for all of them. We added a few lines and this now works with the #2 as well. Should I create a ticket and a pull request? Best, Shawn On Wed, Oct 30, 2019 at 6:07 AM John Peterson <jwp...@gm...> wrote: > Hi Yuxiang, > > I will try and take a look at this when I get a chance... it's likely that > there is a bug in our Abaqus reader. There is a certain amount of variation > allowed in the formatting of Abaqus files, and we may not support exactly > the format you are using. > > -- > John > > > On Tue, Oct 29, 2019 at 3:26 PM Yuxiang Wang <yw...@vi...> wrote: > >> Dear all, >> >> I noticed that whenever I have *Surface in the ABAQUS .inp file, libmesh >> cannot read it. I thought this was implemented according to here: >> >> https://libmesh.github.io/doxygen/classlibMesh_1_1AbaqusIO.html#a2a125c1845edc4c3a6fad266fc76cbfd >> >> >> I have a very short dummy mesh (9 nodes in a unit cube) and a short >> libmesh >> C++ codethat I tested with (attached). whenever I run this with the >> example >> file, it says: >> >> Stream is bad! Perhaps the file: testcube.inp does not exist? >> >> Could anyone please help comment? >> >> Best, >> Shawn >> > > -- Yuxiang "Shawn" Wang, PhD yw...@vi... +1 (434) 284-0836 |
From: John P. <jwp...@gm...> - 2019-10-30 13:07:45
|
Hi Yuxiang, I will try and take a look at this when I get a chance... it's likely that there is a bug in our Abaqus reader. There is a certain amount of variation allowed in the formatting of Abaqus files, and we may not support exactly the format you are using. -- John On Tue, Oct 29, 2019 at 3:26 PM Yuxiang Wang <yw...@vi...> wrote: > Dear all, > > I noticed that whenever I have *Surface in the ABAQUS .inp file, libmesh > cannot read it. I thought this was implemented according to here: > > https://libmesh.github.io/doxygen/classlibMesh_1_1AbaqusIO.html#a2a125c1845edc4c3a6fad266fc76cbfd > > > I have a very short dummy mesh (9 nodes in a unit cube) and a short libmesh > C++ codethat I tested with (attached). whenever I run this with the example > file, it says: > > Stream is bad! Perhaps the file: testcube.inp does not exist? > > Could anyone please help comment? > > Best, > Shawn > |
From: Yuxiang W. <yw...@vi...> - 2019-10-29 20:26:34
|
Dear all, I noticed that whenever I have *Surface in the ABAQUS .inp file, libmesh cannot read it. I thought this was implemented according to here: https://libmesh.github.io/doxygen/classlibMesh_1_1AbaqusIO.html#a2a125c1845edc4c3a6fad266fc76cbfd I have a very short dummy mesh (9 nodes in a unit cube) and a short libmesh C++ codethat I tested with (attached). whenever I run this with the example file, it says: Stream is bad! Perhaps the file: testcube.inp does not exist? Could anyone please help comment? Best, Shawn -- Yuxiang "Shawn" Wang, PhD yw...@vi... +1 (434) 284-0836 |
From: Alexander L. <ale...@gm...> - 2019-10-18 21:33:22
|
Yes, I think that's the best solution. Thanks Roy On Fri, Oct 18, 2019 at 2:30 PM Stogner, Roy H <roy...@ic...> wrote: > > On Fri, 18 Oct 2019, Alexander Lindsay wrote: > > > Is there a way to prevent prolongation/restriction of some System vectors > > during mesh adaptation? I see the *preserve* APIs but that doesn't look > > like it does what I would want.... Basically I am performing grid > > sequencing, obtaining initial guesses for fine grids based on solutions > of > > coarse grids. In a transient problem I have an old solution vector for > > calculating time derivatives. Restricting this vector for the initial > > coarse grid solution and then prolonging it for the fine grid solution > > loses the fine detail from the previous time step. > > I don't think we've got anything like that. Part of having a vector > attached to a System is having the system take care of making sure it > matches the system DoF partitioning. The way to keep a vector that's > *that* independent of a System is to not add it to the System in the > first place. Can you either allocate your vector separately, or > instead temporarily clone it and save the clone through your > coarsen/refine cycle? > --- > Roy > |
From: Stogner, R. H <roy...@ic...> - 2019-10-18 21:30:52
|
On Fri, 18 Oct 2019, Alexander Lindsay wrote: > Is there a way to prevent prolongation/restriction of some System vectors > during mesh adaptation? I see the *preserve* APIs but that doesn't look > like it does what I would want.... Basically I am performing grid > sequencing, obtaining initial guesses for fine grids based on solutions of > coarse grids. In a transient problem I have an old solution vector for > calculating time derivatives. Restricting this vector for the initial > coarse grid solution and then prolonging it for the fine grid solution > loses the fine detail from the previous time step. I don't think we've got anything like that. Part of having a vector attached to a System is having the system take care of making sure it matches the system DoF partitioning. The way to keep a vector that's *that* independent of a System is to not add it to the System in the first place. Can you either allocate your vector separately, or instead temporarily clone it and save the clone through your coarsen/refine cycle? --- Roy |
From: Alexander L. <ale...@gm...> - 2019-10-18 19:50:54
|
Is there a way to prevent prolongation/restriction of some System vectors during mesh adaptation? I see the *preserve* APIs but that doesn't look like it does what I would want.... Basically I am performing grid sequencing, obtaining initial guesses for fine grids based on solutions of coarse grids. In a transient problem I have an old solution vector for calculating time derivatives. Restricting this vector for the initial coarse grid solution and then prolonging it for the fine grid solution loses the fine detail from the previous time step. Alex |
From: Paul T. B. <ptb...@gm...> - 2019-10-18 15:01:22
|
(Apologies if you receive multiple copies of this announcement.) My group at AMD will be presenting tutorials on the HIP programming language during SC19 in Denver, CO. HIP is AMD's GPU programming language, very similar to CUDA. Please see the following link below for the official advertisement (sorry for the link, the ad is ~1MB pdf). https://drive.google.com/open?id=1to5zo7QtsfClI98FXV3h9bGiKHF8eksu If you have questions, feel free to contact me at pau...@am.... Otherwise, please use the point-of-contact in the ad if you'd like to reserve a spot at one of the tutorials. Hope to see you folks in Denver. Thanks, Paul |
From: Shinseong K. <ss...@pu...> - 2019-10-10 02:11:02
|
I understood your advise.I seem to have modified thefile again this time because I have often modified "RB_construction.C"to printoutput error bounds during an offline stage.Thank you for reminding me of a better way.Best regards,Kang------------------------------------------------------------ ShinseongKang GraduateStudent PusanNationalUniversity, South KoreaTel.: +82-051-510-3052 H.P.:+82-010-9770-6595 E-mail:ss...@pu... ----------------------------------------------------------------- Original Message -----From : David Knezevic <dav...@ak...>To : "Shinseong Kang" <ss...@pu...>Cc : "Libmesh user group" <lib...@li...>Sent : 2019-10-10 10:15:15Subject : Re: [RE]Re: [RB] Assembly for a Interior (neighbor) side between elementsAs youadvised, I edited that part in "RB_construction.C" and ranmy code again.As a result, I could obtain the correct result.OK, good to hear! By the way, I didn't mean that you need to edit rb_construction.C. Theimpose_internal_fluxes boolean is a public member of the RBConstruction class, so you can just set impose_internal_fluxes to true in the RBConstruction object that you're using. You can do that in your application code, no need to edit the libMesh library code.Best,David----- Original Message -----From : David Knezevic <dav...@ak...>To : "Shinseong Kang" <ss...@pu...>Cc : "Libmesh user group" <lib...@li...>Sent : 2019-10-08 21:53:36Subject : Re: [RB] Assembly for a Interior (neighbor) side between elementsHello,I think your approach is basically correct, butissue is that by default the code skips assembly on internal sides for the sake of efficiency (since usually we do not need to do assembly on internal sides). In order to not skip internal sides you can set "impose_internal_fluxes = true" on your RBConstruction object. That is false by default and if you look atRBConstruction::add_scaled_matrix_and_vector() you will see that you have to set it to true in order to loop over non-boundary sides.Let me know if that works for you.Best,DavidOn Tue, Oct 8, 2019 at 6:57 AM Shinseong Kang <ss...@pu...> wrote:Hello, all.I triedto definean output in a simply supported 3-D beam problem.My output is an average displacement in the middle of the beam.For simplicity, I only used two brick elements, i.e, ■|■, where"■" is an element, and"|" is a location I want to compute the average output.To do this, I utilized the codes in RB example 5.First, Ideclared "ThetaOutput" (parameter-dependent term) and alsodeclared "AssemblyOutput" (parameter-independent term) as follows:=======================================voidAssemblyOutput::boundary_assembly(FEMContext & c)}=======================================As you can see, The above code is very similar to"Assemblyp1" in "assembly.C" ofRB example 5.However, I could not obtain the correct output because the above code cannot deal with interior side between elements.In other words, theboundary information of FEMContext only include outer side.I tried to find another way, but I could not find the right solution.Therefore,I'd like your help.To summarize my questions areas follows:1. Is there any way to assemble an interior (neighbor) sidebetween elements?2. How to compute anaverage displacement for the middleof a beam in terms of the RB codes?Thank you.Best regards,Kang------------------------------------------------------------ ShinseongKang GraduateStudent PusanNationalUniversity, South KoreaTel.: +82-051-510-3052 H.P.:+82-010-9770-6595 E-mail:ss...@pu... ------------------------------------------------------------ |
From: David K. <dav...@ak...> - 2019-10-10 01:15:22
|
> > As you advised, I edited that part in "RB_construction.C" and ran my code > again. > > As a result, I could obtain the correct result. > OK, good to hear! By the way, I didn't mean that you need to edit rb_construction.C. The impose_internal_fluxes boolean is a public member of the RBConstruction class, so you can just set impose_internal_fluxes to true in the RBConstruction object that you're using. You can do that in your application code, no need to edit the libMesh library code. Best, David > ----- Original Message ----- > From : David Knezevic <dav...@ak...> > To : "Shinseong Kang" <ss...@pu...> > Cc : "Libmesh user group" <lib...@li...> > Sent : 2019-10-08 21:53:36 > Subject : Re: [RB] Assembly for a Interior (neighbor) side between elements > > > Hello, > > I think your approach is basically correct, but issue is that by default > the code skips assembly on internal sides for the sake of efficiency (since > usually we do not need to do assembly on internal sides). In order to not > skip internal sides you can set "impose_internal_fluxes = true" on your > RBConstruction object. That is false by default and if you look > at RBConstruction::add_scaled_matrix_and_vector() you will see that you > have to set it to true in order to loop over non-boundary sides. > > Let me know if that works for you. > > Best, > David > > On Tue, Oct 8, 2019 at 6:57 AM Shinseong Kang <ss...@pu...> wrote: > >> Hello, all. >> >> >> >> I tried to define an output in a simply supported 3-D beam problem. >> >> My output is an average displacement in the middle of the beam. >> >> For simplicity, I only used two brick elements, i.e, ■|■, where "■" is >> an element, and "|" is a location I want to compute the average output. >> >> >> To do this, I utilized the codes in RB example 5. >> >> First, I declared "ThetaOutput" (parameter-dependent term) and >> also declared "AssemblyOutput" (parameter-independent term) as follows: >> >> ======================================= >> >> void AssemblyOutput::boundary_assembly(FEMContext & c) >> >> { >> >> if (rb_sys.get_mesh().get_boundary_info().has_boundary_id >> >> (&c.get_elem(), c.side, BOUNDARY_ID_MID)) >> >> { >> >> const unsigned int u_var = 0; >> >> const unsigned int v_var = 1; >> >> >> FEBase * side_fe = libmesh_nullptr; >> >> c.get_side_fe(v_var, side_fe); >> >> >> const std::vector<Real> & JxW_side = side_fe->get_JxW(); >> >> >> const std::vector<std::vector<Real> > & phi_side = >> side_fe->get_phi(); >> >> >> const unsigned int n_v_dofs = c.get_dof_indices(v_var).size(); >> >> >> unsigned int n_qpoints = c.get_side_qrule().n_points(); >> >> DenseSubVector<Number> & output = c.get_elem_residual(v_var); >> >> >> for (unsigned int qp=0; qp < n_qpoints; qp++) >> >> for (unsigned int i=0; i < n_v_dofs; i++) >> >> output(i) += JxW_side[qp] * (1. * phi_side[i][qp]); >> >> } >> >> } >> >> ======================================= >> As you can see, The above code is very similar to "Assemblyp1" in >> "assembly.C" of RB example 5. >> >> However, I could not obtain the correct output because the above code >> cannot deal with interior side between elements. >> In other words, the boundary information of FEMContext only include outer >> side. >> >> I tried to find another way, but I could not find the right solution. >> Therefore, I'd like your help. >> >> To summarize my questions are as follows: >> 1. Is there any way to assemble an interior (neighbor) side between >> elements? >> 2. How to compute an average displacement for the middle of a beam in >> terms of the RB codes? >> >> >> Thank you. >> >> >> >> Best regards, >> >> Kang >> >> >> ------------------------------------------------------------ >> >> Shinseong Kang >> Graduate Student >> Pusan National University, South Korea >> >> Tel.: +82-051-510-3052 >> H.P.: +82-010-9770-6595 >> E-mail: ss...@pu... >> >> ------------------------------------------------------------ >> > |
From: Shinseong K. <ss...@pu...> - 2019-10-10 00:41:27
|
Thank you for your reply, David.As youadvised, I edited that part in "RB_construction.C" and ranmy code again.As a result, I could obtain the correct result.I was able to solve the problem much simpler than I expected thanks to your help.Best regards,Kang------------------------------------------------------------ ShinseongKang GraduateStudent PusanNationalUniversity, South KoreaTel.: +82-051-510-3052 H.P.:+82-010-9770-6595 E-mail:ss...@pu... ----------------------------------------------------------------- Original Message -----From : David Knezevic <dav...@ak...>To : "Shinseong Kang" <ss...@pu...>Cc : "Libmesh user group" <lib...@li...>Sent : 2019-10-08 21:53:36Subject : Re: [RB] Assembly for a Interior (neighbor) side between elementsHello,I think your approach is basically correct, butissue is that by default the code skips assembly on internal sides for the sake of efficiency (since usually we do not need to do assembly on internal sides). In order to not skip internal sides you can set "impose_internal_fluxes = true" on your RBConstruction object. That is false by default and if you look atRBConstruction::add_scaled_matrix_and_vector() you will see that you have to set it to true in order to loop over non-boundary sides.Let me know if that works for you.Best,DavidOn Tue, Oct 8, 2019 at 6:57 AM Shinseong Kang <ss...@pu...> wrote:Hello, all.I triedto definean output in a simply supported 3-D beam problem.My output is an average displacement in the middle of the beam.For simplicity, I only used two brick elements, i.e, ■|■, where"■" is an element, and"|" is a location I want to compute the average output.To do this, I utilized the codes in RB example 5.First, Ideclared "ThetaOutput" (parameter-dependent term) and alsodeclared "AssemblyOutput" (parameter-independent term) as follows:=======================================voidAssemblyOutput::boundary_assembly(FEMContext & c)}=======================================As you can see, The above code is very similar to"Assemblyp1" in "assembly.C" ofRB example 5.However, I could not obtain the correct output because the above code cannot deal with interior side between elements.In other words, theboundary information of FEMContext only include outer side.I tried to find another way, but I could not find the right solution.Therefore,I'd like your help.To summarize my questions areas follows:1. Is there any way to assemble an interior (neighbor) sidebetween elements?2. How to compute anaverage displacement for the middleof a beam in terms of the RB codes?Thank you.Best regards,Kang------------------------------------------------------------ ShinseongKang GraduateStudent PusanNationalUniversity, South KoreaTel.: +82-051-510-3052 H.P.:+82-010-9770-6595 E-mail:ss...@pu... ------------------------------------------------------------ |
From: Ata o. M. <a.m...@gm...> - 2019-10-08 21:37:24
|
Thank you as always Roy. Ata On Tue, Oct 8, 2019 at 5:35 PM Stogner, Roy H <roy...@ic...> wrote: > > On Tue, 8 Oct 2019, gmail wrote: > > > I was wondering what is the local numbering of the DOFs for > > Clough-Tocher FE on Tri6 elements? I’m looking for a way in each > > element to loop over the basis value (not the gradient) DOFs. > > We always locally loop over vertices, then sides, then interiors, and > on a C1 vertex we always start with the value DoF before the gradient > or any mixed derivative DoFs. So local basis numbers 0, 3, and 6 > should be your value degrees of freedom. > --- > Roy -- Best, Ata |
From: Stogner, R. H <roy...@ic...> - 2019-10-08 21:35:44
|
On Tue, 8 Oct 2019, gmail wrote: > I was wondering what is the local numbering of the DOFs for > Clough-Tocher FE on Tri6 elements? I’m looking for a way in each > element to loop over the basis value (not the gradient) DOFs. We always locally loop over vertices, then sides, then interiors, and on a C1 vertex we always start with the value DoF before the gradient or any mixed derivative DoFs. So local basis numbers 0, 3, and 6 should be your value degrees of freedom. --- Roy |
From: gmail <a.m...@gm...> - 2019-10-08 14:28:12
|
Hi, I was wondering what is the local numbering of the DOFs for Clough-Tocher FE on Tri6 elements? I’m looking for a way in each element to loop over the basis value (not the gradient) DOFs. Thanks, Ata |
From: David K. <dav...@ak...> - 2019-10-08 13:23:51
|
Hello, I think your approach is basically correct, but issue is that by default the code skips assembly on internal sides for the sake of efficiency (since usually we do not need to do assembly on internal sides). In order to not skip internal sides you can set "impose_internal_fluxes = true" on your RBConstruction object. That is false by default and if you look at RBConstruction::add_scaled_matrix_and_vector() you will see that you have to set it to true in order to loop over non-boundary sides. Let me know if that works for you. Best, David On Tue, Oct 8, 2019 at 6:57 AM Shinseong Kang <ss...@pu...> wrote: > Hello, all. > > > > I tried to define an output in a simply supported 3-D beam problem. > > My output is an average displacement in the middle of the beam. > > For simplicity, I only used two brick elements, i.e, ■|■, where "■" is an > element, and "|" is a location I want to compute the average output. > > > To do this, I utilized the codes in RB example 5. > > First, I declared "ThetaOutput" (parameter-dependent term) and > also declared "AssemblyOutput" (parameter-independent term) as follows: > > ======================================= > > void AssemblyOutput::boundary_assembly(FEMContext & c) > > { > > if (rb_sys.get_mesh().get_boundary_info().has_boundary_id > > (&c.get_elem(), c.side, BOUNDARY_ID_MID)) > > { > > const unsigned int u_var = 0; > > const unsigned int v_var = 1; > > > FEBase * side_fe = libmesh_nullptr; > > c.get_side_fe(v_var, side_fe); > > > const std::vector<Real> & JxW_side = side_fe->get_JxW(); > > > const std::vector<std::vector<Real> > & phi_side = > side_fe->get_phi(); > > > const unsigned int n_v_dofs = c.get_dof_indices(v_var).size(); > > > unsigned int n_qpoints = c.get_side_qrule().n_points(); > > DenseSubVector<Number> & output = c.get_elem_residual(v_var); > > > for (unsigned int qp=0; qp < n_qpoints; qp++) > > for (unsigned int i=0; i < n_v_dofs; i++) > > output(i) += JxW_side[qp] * (1. * phi_side[i][qp]); > > } > > } > > ======================================= > As you can see, The above code is very similar to "Assemblyp1" in > "assembly.C" of RB example 5. > > However, I could not obtain the correct output because the above code > cannot deal with interior side between elements. > In other words, the boundary information of FEMContext only include outer > side. > > I tried to find another way, but I could not find the right solution. > Therefore, I'd like your help. > > To summarize my questions are as follows: > 1. Is there any way to assemble an interior (neighbor) side between > elements? > 2. How to compute an average displacement for the middle of a beam in > terms of the RB codes? > > > Thank you. > > > > Best regards, > > Kang > > > ------------------------------------------------------------ > > Shinseong Kang > Graduate Student > Pusan National University, South Korea > > Tel.: +82-051-510-3052 > H.P.: +82-010-9770-6595 > E-mail: ss...@pu... > > ------------------------------------------------------------ > |