## Re: [Libmesh-users] question about field interpolation

 Re: [Libmesh-users] question about field interpolation From: Roy Stogner - 2005-11-07 18:48:02 On Mon, 7 Nov 2005, Guillaume ANCIAUX wrote: > why do you make the difference with the solution vector ? there is a > privileged communication process for it ? Ben Kirk really needs to jump in on this discussion. To the best of my knowledge there's no longer anything special about the solution vector with regards to projections and parallel computations, but Ben did the latter work and I haven't really looked into it. > nevertheless for that kind of operations (even for solution vector) do you > need to send the complete vector to your neighbors ? this would be pretty > much non scalable (my opinion). That depends on how often you need to do the vector send. It would be non-scalable for an explicit algorithm, but (assuming you only need to synchronize once or twice per timestep) not a big problem for an implicit code. Even if some of the primary developers were doing explicit calculations, I don't think this would be a high priority - shape function caching would make a much bigger improvement in our runtimes. > Interpolation is not a key operation in the FE programs ? (i'm kind > of newbie in that). It depends on what you mean by interpolation. Interpolation between different grids is important for adaptive (and vital for adaptive time-dependent) problems. Interpolation between grid points is key for any FE code using better than discontinuous constant elements, but it's simply what we do by evaluating shape functions at quadrature points. > I need to compute a deformation gradient on quadrature points > (\sum_I \dphi_I(X) u_I) to compute a non linear behavior at each > explicit step. That's right. > i know i can compute dphi and phi shapes functions locally as long > as they are precomputed from reference element projection... but i > really need to get the nodes values (u_I) ... if it implies sending > the complete vector ... :( I don't think you want to get the nodes' values - what if you're using higher order elements whose shape functions are determined by more complicated bases? Let the shape function calculations do the work for you. > maybe i didn't get something... Take a look at example 13. I believe it does what you need to do; at each quadrature point there's this loop: for (unsigned int l=0; l

 [Libmesh-users] question about field interpolation From: Guillaume ANCIAUX - 2005-11-07 11:46:05 Attachments: Message as HTML I wonder if there is a way to get a field (described by a shared=20 NumericVector) interpolated in a finest way that localizing the shared=20 vector. I mean by doing only the necessary communication in order to get th= e=20 ghosts values .... This method should be on a system fonctionality but i can't find it .... Anyone could give me help ? Thx... =2D-=20 Guillaume ANCIAUX Tel : 06 89 29 11 50=20 LaBRI, Universit=E9 Bordeaux I (+33)5 40 00 38 21 (bureau)=20 351, Cours de la Lib=E9ration anciaux@...=20 33405 TALENCE Cedex, FRANCE http://dept-info.labri.fr/~anciaux 
 [Libmesh-users] question about field interpolation From: John Peterson - 2005-11-07 14:56:26 Hi, If I understand correctly, you want to communicate a field variable (other than the current solution) involving only the minimum amount of data required (i.e. values at the ghost nodes). I think you will obtain the desired effect for any vector which is added to the system using the "System::add_vector()" routine. However, I believe this involves communicating all the values in the vector, not just those for the ghost nodes... -J Guillaume ANCIAUX writes: > I wonder if there is a way to get a field (described by a shared > NumericVector) interpolated in a finest way that localizing the shared > vector. I mean by doing only the necessary communication in order to get the > ghosts values .... > > This method should be on a system fonctionality but i can't find it .... > > Anyone could give me help ? > > Thx... 
 Re: [Libmesh-users] question about field interpolation From: Guillaume ANCIAUX - 2005-11-07 17:08:14 why do you make the difference with the solution vector ? there is a=20 privileged communication process for it ?=20 nevertheless for that kind of operations (even for solution vector) do you= =20 need to send the complete vector to your neighbors ? this would be pretty=20 much non scalable (my opinion). Interpolation is not a key operation in the FE programs ? (i'm kind of newb= ie=20 in that). I need to compute a deformation gradient on quadrature points=20 (\sum_I \dphi_I(X) u_I) to compute a non linear behavior at each explicit=20 step. i know i can compute dphi and phi shapes functions locally as long as they= =20 are precomputed from reference element projection... but i really need to g= et=20 the nodes values (u_I) ... if it implies sending the complete vector ... :( maybe i didn't get something... thanks for your advices. Le Lundi 7 Novembre 2005 15:56, vous avez =E9crit=A0: > Hi, > > If I understand correctly, you want to communicate a field variable > (other than the current solution) involving only the minimum amount > of data required (i.e. values at the ghost nodes). I think you will > obtain the desired effect for any vector which is added to the system > using the "System::add_vector()" routine. However, I believe this > involves communicating all the values in the vector, not just those > for the ghost nodes... > > -J > > Guillaume ANCIAUX writes: > > I wonder if there is a way to get a field (described by a shared > > NumericVector) interpolated in a finest way that localizing the shared > > vector. I mean by doing only the necessary communication in order to g= et > > the ghosts values .... > > > > This method should be on a system fonctionality but i can't find it ..= =2E. > > > > Anyone could give me help ? > > > > Thx... 
 Re: [Libmesh-users] question about field interpolation From: Roy Stogner - 2005-11-07 18:48:02 On Mon, 7 Nov 2005, Guillaume ANCIAUX wrote: > why do you make the difference with the solution vector ? there is a > privileged communication process for it ? Ben Kirk really needs to jump in on this discussion. To the best of my knowledge there's no longer anything special about the solution vector with regards to projections and parallel computations, but Ben did the latter work and I haven't really looked into it. > nevertheless for that kind of operations (even for solution vector) do you > need to send the complete vector to your neighbors ? this would be pretty > much non scalable (my opinion). That depends on how often you need to do the vector send. It would be non-scalable for an explicit algorithm, but (assuming you only need to synchronize once or twice per timestep) not a big problem for an implicit code. Even if some of the primary developers were doing explicit calculations, I don't think this would be a high priority - shape function caching would make a much bigger improvement in our runtimes. > Interpolation is not a key operation in the FE programs ? (i'm kind > of newbie in that). It depends on what you mean by interpolation. Interpolation between different grids is important for adaptive (and vital for adaptive time-dependent) problems. Interpolation between grid points is key for any FE code using better than discontinuous constant elements, but it's simply what we do by evaluating shape functions at quadrature points. > I need to compute a deformation gradient on quadrature points > (\sum_I \dphi_I(X) u_I) to compute a non linear behavior at each > explicit step. That's right. > i know i can compute dphi and phi shapes functions locally as long > as they are precomputed from reference element projection... but i > really need to get the nodes values (u_I) ... if it implies sending > the complete vector ... :( I don't think you want to get the nodes' values - what if you're using higher order elements whose shape functions are determined by more complicated bases? Let the shape function calculations do the work for you. > maybe i didn't get something... Take a look at example 13. I believe it does what you need to do; at each quadrature point there's this loop: for (unsigned int l=0; l