Dear all, I am experimenting with hdf5+xdmf output. At https://www.xdmf.org/index.php/XDMF_Model_and_Format I read that "XDMF uses XML to store Light data and to describe the data Model. Either HDF5[3] <https://www.hdfgroup.org/HDF5> or binary files can be used to store Heavy data. The data Format is stored redundantly in both XML and HDF5." However, if I call DMView(dmda,hdf5viewer) and then I run h5ls or h5stat on the resulting h5 file, I see no "geometry" section in the file. How should I write the geometry to the HDF5 file? Here below is what I have tried. Best Matteo //Setup ierr = DMDACreate2d(PETSC_COMM_WORLD, DM_BOUNDARY_NONE,DM_BOUNDARY_NONE, DMDA_STENCIL_STAR, ctx.Nx,ctx.Ny, //global dim PETSC_DECIDE,PETSC_DECIDE, //n proc on each dim 2,stWidth, //dof, stencil width NULL, NULL, //n nodes per direction on each cpu &(ctx.daAll)); ierr = DMDASetUniformCoordinates(ctx.daAll, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0); CHKERRQ(ierr); ierr = DMDASetFieldName(ctx.daAll,0,"first"); CHKERRQ(ierr); ierr = DMDASetFieldName(ctx.daAll,1,"second"); CHKERRQ(ierr); ierr = DMDAGetLocalInfo(ctx.daAll,&ctx.daInfo); CHKERRQ(ierr); ierr = DMCreateFieldDecomposition(ctx.daAll,NULL, NULL, &ctx.is, &ctx.daField); CHKERRQ(ierr); //Initial data ierr = DMCreateGlobalVector(ctx.daAll,&ctx.U0); CHKERRQ(ierr); ierr = VecISSet(ctx.U0,ctx.is[0],1.); CHKERRQ(ierr); ierr = VecISSet(ctx.U0,ctx.is[1],100.0); CHKERRQ(ierr); Write mesh and Vec to hdf5: PetscViewer viewer; ierr = PetscViewerHDF5Open(PETSC_COMM_WORLD,"solution.h5",FILE_MODE_WRITE,&viewer); CHKERRQ(ierr); ierr = DMView(ctx.daAll , viewer); CHKERRQ(ierr); //does not output anything to solution.h5?? ierr = VecView(ctx.U0,viewer); CHKERRQ(ierr); ierr = PetscViewerDestroy(&viewer); CHKERRQ(ierr); Attempt to save the two fields separately:: PetscViewer viewer; ierr = PetscViewerHDF5Open(PETSC_COMM_WORLD,"solution.h5",FILE_MODE_WRITE,&viewer); CHKERRQ(ierr); ierr = DMView(ctx.daField[0] , viewer); CHKERRQ(ierr); //does not output anything to solution.h5?? Vec uF; ierr = VecGetSubVector(ctx.U,ctx.is[0],&uF); CHKERRQ(ierr); PetscObjectSetName((PetscObject) uF, "first"); ierr = VecView(uF,viewer); CHKERRQ(ierr); ierr = VecRestoreSubVector(ctx.U,ctx.is[0],&uF); CHKERRQ(ierr); ierr = VecGetSubVector(ctx.U,ctx.is[1],&uF); CHKERRQ(ierr); PetscObjectSetName((PetscObject) uF, "second"); ierr = VecView(uF,viewer); CHKERRQ(ierr); ierr = VecRestoreSubVector(ctx.U,ctx.is[1],&uF); CHKERRQ(ierr); ierr = PetscViewerDestroy(&viewer); CHKERRQ(ierr);
On Mon, Jul 12, 2021 at 11:40 AM Matteo Semplice < [email protected]> wrote:
Dear all,
I am experimenting with hdf5+xdmf output. At https://www.xdmf.org/index.php/XDMF_Model_and_Format I read that "XDMF uses XML to store Light data and to describe the data Model. Either HDF5 [3] <https://www.hdfgroup.org/HDF5> or binary files can be used to store Heavy data. The data Format is stored redundantly in both XML and HDF5."
However, if I call DMView(dmda,hdf5viewer) and then I run h5ls or h5stat on the resulting h5 file, I see no "geometry" section in the file. How should I write the geometry to the HDF5 file?
Here below is what I have tried.
The HDF5 stuff is only implemented for DMPlex since unstructured grids need to be explicitly stored. You can usually just define the structured grid in the XML without putting anything in the HDF5. We could write metadata so that the XML could be autogenerated, but we have not done that.
Thanks, Matt
Best
Matteo
//Setup
ierr = DMDACreate2d(PETSC_COMM_WORLD, DM_BOUNDARY_NONE,DM_BOUNDARY_NONE, DMDA_STENCIL_STAR, ctx.Nx,ctx.Ny, //global dim PETSC_DECIDE,PETSC_DECIDE, //n proc on each dim 2,stWidth, //dof, stencil width NULL, NULL, //n nodes per direction on each cpu &(ctx.daAll));
ierr = DMDASetUniformCoordinates(ctx.daAll, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0); CHKERRQ(ierr); ierr = DMDASetFieldName(ctx.daAll,0,"first"); CHKERRQ(ierr); ierr = DMDASetFieldName(ctx.daAll,1,"second"); CHKERRQ(ierr); ierr = DMDAGetLocalInfo(ctx.daAll,&ctx.daInfo); CHKERRQ(ierr); ierr = DMCreateFieldDecomposition(ctx.daAll,NULL, NULL, &ctx.is, &ctx.daField); CHKERRQ(ierr);
//Initial data ierr = DMCreateGlobalVector(ctx.daAll,&ctx.U0); CHKERRQ(ierr); ierr = VecISSet(ctx.U0,ctx.is[0],1.); CHKERRQ(ierr); ierr = VecISSet(ctx.U0,ctx.is[1],100.0); CHKERRQ(ierr);
Write mesh and Vec to hdf5:
PetscViewer viewer; ierr = PetscViewerHDF5Open(PETSC_COMM_WORLD,"solution.h5",FILE_MODE_WRITE,&viewer); CHKERRQ(ierr); ierr = DMView(ctx.daAll , viewer); CHKERRQ(ierr); //does not output anything to solution.h5?? ierr = VecView(ctx.U0,viewer); CHKERRQ(ierr);
ierr = PetscViewerDestroy(&viewer); CHKERRQ(ierr);
Attempt to save the two fields separately::
PetscViewer viewer; ierr = PetscViewerHDF5Open(PETSC_COMM_WORLD,"solution.h5",FILE_MODE_WRITE,&viewer); CHKERRQ(ierr); ierr = DMView(ctx.daField[0] , viewer); CHKERRQ(ierr); //does not output anything to solution.h5??
Vec uF; ierr = VecGetSubVector(ctx.U,ctx.is[0],&uF); CHKERRQ(ierr); PetscObjectSetName((PetscObject) uF, "first"); ierr = VecView(uF,viewer); CHKERRQ(ierr); ierr = VecRestoreSubVector(ctx.U,ctx.is[0],&uF); CHKERRQ(ierr);
ierr = VecGetSubVector(ctx.U,ctx.is[1],&uF); CHKERRQ(ierr); PetscObjectSetName((PetscObject) uF, "second"); ierr = VecView(uF,viewer); CHKERRQ(ierr); ierr = VecRestoreSubVector(ctx.U,ctx.is[1],&uF); CHKERRQ(ierr);
ierr = PetscViewerDestroy(&viewer); CHKERRQ(ierr);
-- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
Il 12/07/21 17:51, Matthew Knepley ha scritto:
On Mon, Jul 12, 2021 at 11:40 AM Matteo Semplice <[email protected] <mailto:[email protected]>> wrote:
Dear all,
I am experimenting with hdf5+xdmf output. At https://www.xdmf.org/index.php/XDMF_Model_and_Format <https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.xdmf.org%2Findex.php%2FXDMF_Model_and_Format&data=04%7C01%7Cmatteo.semplice%40uninsubria.it%7Cb7db50b8974544e2f5ed08d9454ce429%7C9252ed8bdffc401c86ca6237da9991fa%7C0%7C0%7C637617019536687302%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=gBEr%2BY1%2BD4Tw8u8oUdEiqJQgMmsHhqXAKr2Z9xBH8Do%3D&reserved=0> I read that "XDMF uses XML to store Light data and to describe the data Model. Either HDF5[3] <https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.hdfgroup.org%2FHDF5&data=04%7C01%7Cmatteo.semplice%40uninsubria.it%7Cb7db50b8974544e2f5ed08d9454ce429%7C9252ed8bdffc401c86ca6237da9991fa%7C0%7C0%7C637617019536697248%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=8evP7yBnpwcrxdFeGdAo7PFNIDS7Xn1Q05pVMrHidH4%3D&reserved=0> or binary files can be used to store Heavy data. The data Format is stored redundantly in both XML and HDF5."
However, if I call DMView(dmda,hdf5viewer) and then I run h5ls or h5stat on the resulting h5 file, I see no "geometry" section in the file. How should I write the geometry to the HDF5 file?
Here below is what I have tried.
The HDF5 stuff is only implemented for DMPlex since unstructured grids need to be explicitly stored. You can usually just define the structured grid in the XML without putting anything in the HDF5. We could write metadata so that the XML could be autogenerated, but we have not done that.
Thanks for the clarification. It shouldn't be hard to produce the XML from my code. Just another related question: if I call VecView in parallel with the HDF5 viewer, I get a single output file. Does this mean that data are gathered by one process and written or it handles it smartly by coordinating the output of all processes to a single file? Matteo
On Thu, Jul 15, 2021 at 6:39 AM Matteo Semplice < [email protected]> wrote:
Il 12/07/21 17:51, Matthew Knepley ha scritto:
On Mon, Jul 12, 2021 at 11:40 AM Matteo Semplice < [email protected]> wrote:
Dear all,
I am experimenting with hdf5+xdmf output. At https://www.xdmf.org/index.php/XDMF_Model_and_Format <https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.xdmf.org%2Findex.php%2FXDMF_Model_and_Format&data=04%7C01%7Cmatteo.semplice%40uninsubria.it%7Cb7db50b8974544e2f5ed08d9454ce429%7C9252ed8bdffc401c86ca6237da9991fa%7C0%7C0%7C637617019536687302%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=gBEr%2BY1%2BD4Tw8u8oUdEiqJQgMmsHhqXAKr2Z9xBH8Do%3D&reserved=0> I read that "XDMF uses XML to store Light data and to describe the data Model. Either HDF5[3] <https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.hdfgroup.org%2FHDF5&data=04%7C01%7Cmatteo.semplice%40uninsubria.it%7Cb7db50b8974544e2f5ed08d9454ce429%7C9252ed8bdffc401c86ca6237da9991fa%7C0%7C0%7C637617019536697248%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=8evP7yBnpwcrxdFeGdAo7PFNIDS7Xn1Q05pVMrHidH4%3D&reserved=0> or binary files can be used to store Heavy data. The data Format is stored redundantly in both XML and HDF5."
However, if I call DMView(dmda,hdf5viewer) and then I run h5ls or h5stat on the resulting h5 file, I see no "geometry" section in the file. How should I write the geometry to the HDF5 file?
Here below is what I have tried.
The HDF5 stuff is only implemented for DMPlex since unstructured grids need to be explicitly stored. You can usually just define the structured grid in the XML without putting anything in the HDF5. We could write metadata so that the XML could be autogenerated, but we have not done that.
Thanks for the clarification. It shouldn't be hard to produce the XML from my code.
Just another related question: if I call VecView in parallel with the HDF5 viewer, I get a single output file. Does this mean that data are gathered by one process and written or it handles it smartly by coordinating the output of all processes to a single file?
This is slightly more complicated than you would expect. We have two implementations, one which uses MPI-IO, and one which sends data from each process to 0, which writes it out. It turns out that MPI-IO is sometimes poorly supported or badly implemented, so you need the fallback. Thanks, Matt
Matteo
-- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
Il 15/07/21 14:15, Matthew Knepley ha scritto:
On Thu, Jul 15, 2021 at 6:39 AM Matteo Semplice <[email protected] <mailto:[email protected]>> wrote:
Il 12/07/21 17:51, Matthew Knepley ha scritto:
On Mon, Jul 12, 2021 at 11:40 AM Matteo Semplice <[email protected] <mailto:[email protected]>> wrote:
Dear all,
I am experimenting with hdf5+xdmf output. At https://www.xdmf.org/index.php/XDMF_Model_and_Format <https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.xdmf.org%2Findex.php%2FXDMF_Model_and_Format&data=04%7C01%7Cmatteo.semplice%40uninsubria.it%7Cfb0d540c87a64e4ea51d08d9478a4e9b%7C9252ed8bdffc401c86ca6237da9991fa%7C0%7C0%7C637619481622608977%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=sOQskFoMTHdOwjOec0d9npdw%2BiAVbar1SXBuU%2BH8xKc%3D&reserved=0> I read that "XDMF uses XML to store Light data and to describe the data Model. Either HDF5[3] <https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.hdfgroup.org%2FHDF5&data=04%7C01%7Cmatteo.semplice%40uninsubria.it%7Cfb0d540c87a64e4ea51d08d9478a4e9b%7C9252ed8bdffc401c86ca6237da9991fa%7C0%7C0%7C637619481622618934%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=akFyfHE4BULSscevnO0MxjMhEByT3USoJFQKsikJSzg%3D&reserved=0> or binary files can be used to store Heavy data. The data Format is stored redundantly in both XML and HDF5."
However, if I call DMView(dmda,hdf5viewer) and then I run h5ls or h5stat on the resulting h5 file, I see no "geometry" section in the file. How should I write the geometry to the HDF5 file?
Here below is what I have tried.
The HDF5 stuff is only implemented for DMPlex since unstructured grids need to be explicitly stored. You can usually just define the structured grid in the XML without putting anything in the HDF5. We could write metadata so that the XML could be autogenerated, but we have not done that.
Thanks for the clarification. It shouldn't be hard to produce the XML from my code.
Just another related question: if I call VecView in parallel with the HDF5 viewer, I get a single output file. Does this mean that data are gathered by one process and written or it handles it smartly by coordinating the output of all processes to a single file?
This is slightly more complicated than you would expect. We have two implementations, one which uses MPI-IO, and one which sends data from each process to 0, which writes it out. It turns out that MPI-IO is sometimes poorly supported or badly implemented, so you need the fallback.
Thanks! On my machine I am compiling from the git repo with --download-hdf5, so I have some control, but on clusters I prefer to use the available petsc. Is there a simple way to check which implementation is begin used in a run? Matteo
On Thu, Jul 15, 2021 at 8:20 AM Matteo Semplice < [email protected]> wrote:
Il 15/07/21 14:15, Matthew Knepley ha scritto:
On Thu, Jul 15, 2021 at 6:39 AM Matteo Semplice < [email protected]> wrote:
Il 12/07/21 17:51, Matthew Knepley ha scritto:
On Mon, Jul 12, 2021 at 11:40 AM Matteo Semplice < [email protected]> wrote:
Dear all,
I am experimenting with hdf5+xdmf output. At https://www.xdmf.org/index.php/XDMF_Model_and_Format <https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.xdmf.org%2Findex.php%2FXDMF_Model_and_Format&data=04%7C01%7Cmatteo.semplice%40uninsubria.it%7Cfb0d540c87a64e4ea51d08d9478a4e9b%7C9252ed8bdffc401c86ca6237da9991fa%7C0%7C0%7C637619481622608977%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=sOQskFoMTHdOwjOec0d9npdw%2BiAVbar1SXBuU%2BH8xKc%3D&reserved=0> I read that "XDMF uses XML to store Light data and to describe the data Model. Either HDF5[3] <https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.hdfgroup.org%2FHDF5&data=04%7C01%7Cmatteo.semplice%40uninsubria.it%7Cfb0d540c87a64e4ea51d08d9478a4e9b%7C9252ed8bdffc401c86ca6237da9991fa%7C0%7C0%7C637619481622618934%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=akFyfHE4BULSscevnO0MxjMhEByT3USoJFQKsikJSzg%3D&reserved=0> or binary files can be used to store Heavy data. The data Format is stored redundantly in both XML and HDF5."
However, if I call DMView(dmda,hdf5viewer) and then I run h5ls or h5stat on the resulting h5 file, I see no "geometry" section in the file. How should I write the geometry to the HDF5 file?
Here below is what I have tried.
The HDF5 stuff is only implemented for DMPlex since unstructured grids need to be explicitly stored. You can usually just define the structured grid in the XML without putting anything in the HDF5. We could write metadata so that the XML could be autogenerated, but we have not done that.
Thanks for the clarification. It shouldn't be hard to produce the XML from my code.
Just another related question: if I call VecView in parallel with the HDF5 viewer, I get a single output file. Does this mean that data are gathered by one process and written or it handles it smartly by coordinating the output of all processes to a single file?
This is slightly more complicated than you would expect. We have two implementations, one which uses MPI-IO, and one which sends data from each process to 0, which writes it out. It turns out that MPI-IO is sometimes poorly supported or badly implemented, so you need the fallback.
Thanks!
On my machine I am compiling from the git repo with --download-hdf5, so I have some control, but on clusters I prefer to use the available petsc. Is there a simple way to check which implementation is begin used in a run?
You have to check the configure output. We never gather everything to one process, so you should not have to worry about it. Thanks, Matt Matteo
-- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
Il 15/07/21 14:26, Matthew Knepley ha scritto:
On Thu, Jul 15, 2021 at 8:20 AM Matteo Semplice <[email protected] <mailto:[email protected]>> wrote:
Il 15/07/21 14:15, Matthew Knepley ha scritto:
On Thu, Jul 15, 2021 at 6:39 AM Matteo Semplice <[email protected] <mailto:[email protected]>> wrote:
Il 12/07/21 17:51, Matthew Knepley ha scritto:
On Mon, Jul 12, 2021 at 11:40 AM Matteo Semplice <[email protected] <mailto:[email protected]>> wrote:
Dear all,
I am experimenting with hdf5+xdmf output. At https://www.xdmf.org/index.php/XDMF_Model_and_Format <https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.xdmf.org%2Findex.php%2FXDMF_Model_and_Format&data=04%7C01%7Cmatteo.semplice%40uninsubria.it%7C3a9815038ab445f8246b08d9478bd031%7C9252ed8bdffc401c86ca6237da9991fa%7C0%7C0%7C637619488512510053%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=e9a30wOMKKyHI2Ay5xFBaEFznwgzLg%2BxDCrQY75464c%3D&reserved=0> I read that "XDMF uses XML to store Light data and to describe the data Model. Either HDF5[3] <https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.hdfgroup.org%2FHDF5&data=04%7C01%7Cmatteo.semplice%40uninsubria.it%7C3a9815038ab445f8246b08d9478bd031%7C9252ed8bdffc401c86ca6237da9991fa%7C0%7C0%7C637619488512520008%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=0%2BwxLzRPRupk2klRoxuKSEHpzNVipjkF%2FVU0pq5jn%2B4%3D&reserved=0> or binary files can be used to store Heavy data. The data Format is stored redundantly in both XML and HDF5."
However, if I call DMView(dmda,hdf5viewer) and then I run h5ls or h5stat on the resulting h5 file, I see no "geometry" section in the file. How should I write the geometry to the HDF5 file?
Here below is what I have tried.
The HDF5 stuff is only implemented for DMPlex since unstructured grids need to be explicitly stored. You can usually just define the structured grid in the XML without putting anything in the HDF5. We could write metadata so that the XML could be autogenerated, but we have not done that.
Thanks for the clarification. It shouldn't be hard to produce the XML from my code.
Just another related question: if I call VecView in parallel with the HDF5 viewer, I get a single output file. Does this mean that data are gathered by one process and written or it handles it smartly by coordinating the output of all processes to a single file?
This is slightly more complicated than you would expect. We have two implementations, one which uses MPI-IO, and one which sends data from each process to 0, which writes it out. It turns out that MPI-IO is sometimes poorly supported or badly implemented, so you need the fallback.
Thanks!
On my machine I am compiling from the git repo with --download-hdf5, so I have some control, but on clusters I prefer to use the available petsc.
Is there a simple way to check which implementation is begin used in a run?
You have to check the configure output. We never gather everything to one process, so you should not have to worry about it.
Thanks a lot! Matteo
Thanks,
Matt
Matteo
-- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener
https://www.cse.buffalo.edu/~knepley/ <https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.cse.buffalo.edu%2F~knepley%2F&data=04%7C01%7Cmatteo.semplice%40uninsubria.it%7C3a9815038ab445f8246b08d9478bd031%7C9252ed8bdffc401c86ca6237da9991fa%7C0%7C0%7C637619488512520008%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=73lAI16uLTsAuFedTXerJQ0jn63UspjPLLRRpb7Uw0E%3D&reserved=0>
-- --- Professore Associato in Analisi Numerica Dipartimento di Scienza e Alta Tecnologia Università degli Studi dell'Insubria Via Valleggio, 11 - Como
participants (2)
-
Matteo Semplice -
Matthew Knepley