Return-Path: Received: from [149.220.60.110] (account huebl@hzdr.de [149.220.60.110] verified) by hzdr.de (CommuniGate Pro SMTP 6.1.10) with ESMTPSA id 14290014 for picongpu-users@hzdr.de; Thu, 16 Jun 2016 14:55:53 +0200 Subject: Re: Field initializers To: picongpu-users@hzdr.de References: From: "Huebl, Axel" X-Enigmail-Draft-Status: N1110 Message-ID: Date: Thu, 16 Jun 2016 14:55:52 +0200 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="------------ms060502050902020405000004" This is a cryptographically signed message in MIME format. --------------ms060502050902020405000004 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Dear Danila, yes, in the case of experimentally measured data it is definitely the right way to go through our HDF5 init for the density profiles instead of trying to parametrize in case of complex measurements. I think the quickest way in your case would be to write a small (python) script that reads your data and does an interpolation to a given discretization automatically by linear interpolation. I scatched this a little in #1502 [1] but instead of "primitives" such as cubes and spheres you would load your data and interpolate it to the grid you want to use in the simulation (make the grid sizes and offset a free parameter of this step in the script). Performance: don't worry, we took care of that and read the profile efficiently in a tree-like manner (first per GPU via MPI, then distributed on the GPU via its threads). Best, Axel On 16.06.2016 12:01, Khikhlukha Danila wrote: > Hi Axel, > thank you for your replay. Let me please comment on your email step by = step. > 1. C++ 11: thanks, I'll give it a shot. At the moment I just relaxed co= nst qualifier and initialized test array in a constructor.=20 >=20 > 2. gasFreeFormula: Thanks for a hint. In fact I was tweaking the gasFre= eFormula method to get a custom longitudinal gas profile. Let me please s= hortly describe a task I was trying to solve. Assume one has an experimen= tally measured (or simulated) gas profile specified on some grid. I want = to use this profile for a pic simulation. The ideal solution IMHO would b= e to let picongpu to read the experimental profile, store it and re-sampl= e it in a lazy way in gasFreeFormula:: SI:: GasProfile:: operator() by us= ing the interpolation procedure. Since I was not sure how to read the fi= le for the beginning I tried to store an experimental profile explicitly= as a member of the GasProfile structure.=20 >=20 > Resampling an experimental profile externally and saving it to an HDF5 = may be another option. However every time one plays with a picongpu grid = the this procedure should be repeated... >=20 > 3. HDF5 reader: Sorry, my question was not very clear. Unfortunately I= didn't get a chance to take a closer look to h5 file format... I was cur= ious if a lot of threads will try to read a custom profile from a file wi= ll it impact the performance? >=20 > Thanks, > Danila. > ________________________________________ > From: picongpu-users@hzdr.de [picongpu-users@hzdr.de] on behalf of Hueb= l, Axel [a.huebl@hzdr.de] > Sent: Thursday, June 16, 2016 11:05 AM > To: picongpu-users@hzdr.de > Subject: Re: [PIConGPU-Users] [PIConGPU-Users] Field initializers >=20 > Hi Danila, >=20 >> 1. If there is a way how to switch on the c++11 support for a >> compilation? >=20 > works only in `dev` right now, just configure (run cmake) with > configure -c"-DCMAKE_CXX_STANDARD=3D11" [...] >=20 > nevertheless, this is only a *warning* and still works. > just move your "test" variable *inside* the operator() to get rid of th= e > error "function-scope static variables cannot be initialized". >=20 >> 2. If there is a less dirty way how to plug in a custom gas profile? >> The custom HDF5 file is mentioned in the code, however I didn't find >> the way how to use... >=20 > 0.1.2: > - componentsConfig.param: gasFreeFormula https://git.io/vo0zM > - gasConfig.param: den(x,y,z) https://git.io/vo0z9 >=20 > so you can define anything you can describe as a function > f(x, y, z) -> density >=20 > is that not general enough? >=20 > The alternative is "gasFromHdf5" where you pre-discretize a gas profile= > you want to use. I am thinking about providing a python-toolchain to > build such files in the future from primitives [1], but for now one can= > simply create it with the same resolution as the planned simulation e.g= =2E > via matlab, h5py or what ever tool can write a HDF5 file with the > density information (a very simple scalar matrix). >=20 >> BTW, is it thread safe to read a gas profile from the file? >=20 > Depends which kind of threads you refer to. PIConGPU's threads reading > the file are of course coordinated reads and save, but you should not > modify the gas profile file while PIConGPU is reading it. >=20 >=20 > Best, > Axel >=20 > [1] https://github.com/ComputationalRadiationPhysics/picongpu/issues/15= 02 >=20 > On 14.06.2016 11:31, Khikhlukha Danila wrote: >> Dear all, >> I'm trying to tweak the gasProfile structure a bit. In fact I want to >> specify a custom 1D gas distribution. >> So currently I'm trying to initialize an array inside a gasProfile >> declaration code: >> struct >> GasProfile >> >> >> { >> >> >> .... >> >> >> const float_64 test[10] =3D >> {0,1,2,3,4,5,6,7,8,9}; >> >> DINLINE float_64 operator()( floatD_64 pos ) >> {.... >> >> The code above gives an error during the compilation >> .../simulation_defines/param/gasConfig.param(213): warning: field >> initializers are a C++11 feature >> .../simulation_defines/param/gasConfig.param(213): warning: field >> initializers are a C++11 feature >> .../simulation_defines/param/gasConfig.param(200) (col. 37): error: >> Internal Compiler Error (codegen): "function-scope static variables >> cannot be initialized!" >> >> So my questions are: >> 1. If there is a way how to switch on the c++11 support for a >> compilation? (w.r.t. >> https://github.com/ComputationalRadiationPhysics/picongpu/issues/1147)= >> >> 2. If there is a less dirty way how to plug in a custom gas profile? T= he >> custom HDF5 file is mentioned in the code, however I didn't find the w= ay >> how to use... BTW, is it thread safe to read a gas profile from the fi= le? >> >> Thank you in advance, >> Danila. >> >> >=20 > -- >=20 > Axel Huebl > Phone +49 351 260 3582 > https://www.hzdr.de/crp > Computational Radiation Physics > Laser Particle Acceleration Division > Helmholtz-Zentrum Dresden - Rossendorf e.V. >=20 > Bautzner Landstrasse 400, 01328 Dresden > POB 510119, D-01314 Dresden > Vorstand: Prof. Dr.Dr.h.c. R. Sauerbrey > Prof. Dr.Dr.h.c. P. Joehnk > VR 1693 beim Amtsgericht Dresden >=20 >=20 > ############################################################# > This message is sent to you because you are subscribed to > the mailing list . > To unsubscribe, E-mail to: > To switch to the DIGEST mode, E-mail to = > To switch to the INDEX mode, E-mail to > Send administrative queries to >=20 --=20 Axel Huebl Phone +49 351 260 3582 https://www.hzdr.de/crp Computational Radiation Physics Laser Particle Acceleration Division Helmholtz-Zentrum Dresden - Rossendorf e.V. Bautzner Landstrasse 400, 01328 Dresden POB 510119, D-01314 Dresden Vorstand: Prof. Dr.Dr.h.c. R. Sauerbrey Prof. Dr.Dr.h.c. P. Joehnk VR 1693 beim Amtsgericht Dresden --------------ms060502050902020405000004 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCC D6wwggTVMIIDvaADAgECAghQTsb1PRG0ZDANBgkqhkiG9w0BAQsFADBxMQswCQYDVQQGEwJE RTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRy dXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNMTQw NzIyMTIwODI2WhcNMTkwNzA5MjM1OTAwWjBaMQswCQYDVQQGEwJERTETMBEGA1UEChMKREZO LVZlcmVpbjEQMA4GA1UECxMHREZOLVBLSTEkMCIGA1UEAxMbREZOLVZlcmVpbiBQQ0EgR2xv YmFsIC0gRzAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6ZvDZ4X5Da71jVTD llA1PWLpbkztlNcAW5UidNQg6zSP1uzAMQQLmYHiphTSUqAoI4SLdIkEXlvg4njBeMsWyyg1 OXstkEXQ7aAAeny/Sg4bAMOG6VwrMRF7DPOCJEOMHDiLamgAmu7cT3ir0sYTm3at7t4m6O8B r3QPwQmi9mvOvdPNFDBP9eXjpMhim4IaAycwDQJlYE3t0QkjKpY1WCfTdsZxtpAdxO3/NYZ9 bzOz2w/FEcKKg6GUXUFr2NIQ9Uz9ylGs2b3vkoO72uuLFlZWQ8/h1RM9ph8nMM1JVNvJEzSa cXXFbOqnC5j5IZ0nrz6jOTlIaoytyZn7wxLyvQIDAQABo4IBhjCCAYIwDgYDVR0PAQH/BAQD AgEGMB0GA1UdDgQWBBRJt8bP6D0ff+pEexMp9/EKcD7eZDAfBgNVHSMEGDAWgBQxw3kbuvVT 1xfgiXotF2wKsyudMzASBgNVHRMBAf8ECDAGAQH/AgECMGIGA1UdIARbMFkwEQYPKwYBBAGB rSGCLAEBBAICMBEGDysGAQQBga0hgiwBAQQDADARBg8rBgEEAYGtIYIsAQEEAwEwDwYNKwYB BAGBrSGCLAEBBDANBgsrBgEEAYGtIYIsHjA+BgNVHR8ENzA1MDOgMaAvhi1odHRwOi8vcGtp MDMzNi50ZWxlc2VjLmRlL3JsL0RUX1JPT1RfQ0FfMi5jcmwweAYIKwYBBQUHAQEEbDBqMCwG CCsGAQUFBzABhiBodHRwOi8vb2NzcDAzMzYudGVsZXNlYy5kZS9vY3NwcjA6BggrBgEFBQcw AoYuaHR0cDovL3BraTAzMzYudGVsZXNlYy5kZS9jcnQvRFRfUk9PVF9DQV8yLmNlcjANBgkq hkiG9w0BAQsFAAOCAQEAYyAo/ZwhhnK+OUZZOTIlvKkBmw3Myn1BnIZtCm4ssxNZdbEzkhth Jxb/w7LVNYL7hCoBSb1mu2YvssIGXW4/buMBWlvKQ2NclbbhMacf1QdfTeZlgk4y+cN8ekvN TVx07iHydQLsUj7SyWrTkCNuSWc1vn9NVqTszC/Pt6GXqHI+ybxA1lqkCD3WvILDt7cyjrEs jmpttzUCGc/1OURYY6ckABCwu/xOr24vOLulV0k/2G5QbyyXltwdRpplic+uzPLl2Z9Tsz6h L5Kp2AvGhB8Exuse6J99tXulAvEkxSRjETTMWpMgKnmIOiVCkKllO3yG0xIVIyn8LNrMOVtU FzCCBWMwggRLoAMCAQICBxY+kUMnmSgwDQYJKoZIhvcNAQEFBQAwgZQxCzAJBgNVBAYTAkRF MTIwMAYDVQQKEylGb3JzY2h1bmdzemVudHJ1bSBEcmVzZGVuLVJvc3NlbmRvcmYgZS5WLjEg MB4GA1UECxMXSW5mb3JtYXRpb25zdGVjaG5vbG9naWUxFTATBgNVBAMTDEZaRC1DQSAtIEcw MjEYMBYGCSqGSIb3DQEJARYJcmFAZnpkLmRlMB4XDTEzMDgyOTA5MjYxMVoXDTE2MDgyODA5 MjYxMVowYTELMAkGA1UEBhMCREUxPDA6BgNVBAoTM0hlbG1ob2x0ei1aZW50cnVtIERyZXNk ZW4gLSBSb3NzZW5kb3JmIGUuIFYuIChIWkRSKTEUMBIGA1UEAxMLSHVlYmwsIEF4ZWwwggEi MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDViBLlmp5z/AH4HT3PrB4UI58H7PW6TWV7 qbRkU+Yl+JsJTxAqwziwYH7MwZHvjRoFyic9ZqCEWfML2rSQ0PDkwmxDaGtYJqQimeK8gft1 0sZfqwWzNnh+5KAnmoKm4n8qXaBJSOMLXN0ES7PGVEYcX41p/lb96rOaHex1cqVZGvFqi5Kk ui4BS/yxsqfrqldJu+/BMVWqFoIV66J4XA5NdJ1CUmlqhywqR71r/+nwfE39PITVkVQeYpVB xwVr7rwgEI4Umx+GBRaGQ1weT3BYbzTp0+XDiK03+VzDzLbmwL2deEvsLZLfXgzGUjsk9Cjp BsNXBNl+eL63b5FB2vyDAgMBAAGjggHqMIIB5jAvBgNVHSAEKDAmMBEGDysGAQQBga0hgiwB AQQDADARBg8rBgEEAYGtIYIsAgEEAwAwCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAwKQYDVR0l BCIwIAYIKwYBBQUHAwIGCCsGAQUFBwMEBgorBgEEAYI3FAICMB0GA1UdDgQWBBSttvK/NlJB 17NgARiUbVpb25z/iDAfBgNVHSMEGDAWgBSlKUj1lZkYtT43yIYCik6/QvAdjDAaBgNVHREE EzARgQ9hLmh1ZWJsQGh6ZHIuZGUwewYDVR0fBHQwcjA3oDWgM4YxaHR0cDovL2NkcDEucGNh LmRmbi5kZS9memQtY2EvcHViL2NybC9nX2NhY3JsLmNybDA3oDWgM4YxaHR0cDovL2NkcDIu cGNhLmRmbi5kZS9memQtY2EvcHViL2NybC9nX2NhY3JsLmNybDCBlgYIKwYBBQUHAQEEgYkw gYYwQQYIKwYBBQUHMAKGNWh0dHA6Ly9jZHAxLnBjYS5kZm4uZGUvZnpkLWNhL3B1Yi9jYWNl cnQvZ19jYWNlcnQuY3J0MEEGCCsGAQUFBzAChjVodHRwOi8vY2RwMi5wY2EuZGZuLmRlL2Z6 ZC1jYS9wdWIvY2FjZXJ0L2dfY2FjZXJ0LmNydDANBgkqhkiG9w0BAQUFAAOCAQEAPUO/nMUa BY1sPKHNaLb/T+8gXbWPiQFRNZphBs3lP06qrqXvv9zf3uHrqj6s204HGsPx9HuyvN9XAnud 7sfggcyWR/pEpGPm6l/ksT/J3YEQQ1RXukry/kYjuPcTgeIq4PmuqLU1o7iPKVA06lIxobfN jA/639YAFF0cT0VNp67ewbcmLTSrz9eMcZ2a4Ib8fw2emLGlVdeMNUqZrYoieqtlrG7Ylip6 DQq1gN0K//RitbcxikFh6ttSgyJtG8rI1LdYXMKMDPDrTwEDuussA+9mkfjUAfiykwJ5jxwS IAu7lpyzaUffgj7m8E5auM+H+fLqpxefiY4kYJ34SWRqbzCCBWgwggRQoAMCAQICBxeQYNhH FucwDQYJKoZIhvcNAQELBQAwWjELMAkGA1UEBhMCREUxEzARBgNVBAoTCkRGTi1WZXJlaW4x EDAOBgNVBAsTB0RGTi1QS0kxJDAiBgNVBAMTG0RGTi1WZXJlaW4gUENBIEdsb2JhbCAtIEcw MTAeFw0xNDA1MTIxNTA1NDRaFw0xOTA3MDkyMzU5MDBaMIGUMQswCQYDVQQGEwJERTEyMDAG A1UEChMpRm9yc2NodW5nc3plbnRydW0gRHJlc2Rlbi1Sb3NzZW5kb3JmIGUuVi4xIDAeBgNV BAsTF0luZm9ybWF0aW9uc3RlY2hub2xvZ2llMRUwEwYDVQQDEwxGWkQtQ0EgLSBHMDIxGDAW BgkqhkiG9w0BCQEWCXJhQGZ6ZC5kZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB APJtRngoAQ6T4E/CFL2dhUCyW78+n6R9SQPg5WYDaIOLhS7nv+i4faU/BL3DW6K/EG9q7fa8 EW5N6d1qhHOwFGXcVGPWRmmKnEfQVMB2hcmhHEmJik30NrHKMYmszPq5sbvlF7Rf8AYfJB6P QkrGOHlstRkg5GJLGZVoajiJqVZEJhFoKKru264OtLoOmLW8xN5/dzFUEUBeGxUtisb4fkaa u7vXj9VGCKhtPtBu097/Qk/2u4MO6hkBpK8qBPht2KEav9SjOPi2VVioEMyxh91zM4EmxpV8 1nyf2lrA/PFJCsiozIhXlIrGzu8sjORYWGmU9n+mTNuQLgbyPj/mYTkCAwEAAaOCAfYwggHy MBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMBEGA1UdIAQKMAgwBgYEVR0g ADAdBgNVHQ4EFgQUpSlI9ZWZGLU+N8iGAopOv0LwHYwwHwYDVR0jBBgwFoAUSbfGz+g9H3/q RHsTKffxCnA+3mQwFAYDVR0RBA0wC4EJcmFAZnpkLmRlMIGIBgNVHR8EgYAwfjA9oDugOYY3 aHR0cDovL2NkcDEucGNhLmRmbi5kZS9nbG9iYWwtcm9vdC1jYS9wdWIvY3JsL2NhY3JsLmNy bDA9oDugOYY3aHR0cDovL2NkcDIucGNhLmRmbi5kZS9nbG9iYWwtcm9vdC1jYS9wdWIvY3Js L2NhY3JsLmNybDCB1wYIKwYBBQUHAQEEgcowgccwMwYIKwYBBQUHMAGGJ2h0dHA6Ly9vY3Nw LnBjYS5kZm4uZGUvT0NTUC1TZXJ2ZXIvT0NTUDBHBggrBgEFBQcwAoY7aHR0cDovL2NkcDEu cGNhLmRmbi5kZS9nbG9iYWwtcm9vdC1jYS9wdWIvY2FjZXJ0L2NhY2VydC5jcnQwRwYIKwYB BQUHMAKGO2h0dHA6Ly9jZHAyLnBjYS5kZm4uZGUvZ2xvYmFsLXJvb3QtY2EvcHViL2NhY2Vy dC9jYWNlcnQuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQAvWPqa1wgMSc4XBk6h21FmTdAW3LYz b+M6K85xjxWeNjVXwkqkfYCEYsJwwWJQSfkPj6aRWTRP/exNVwppP4hVhPPcFrRH03puTj4y no9xX57lQpdXtdaPK3vY/dSgtkr+AebV1cGdQtLYyQxbwNHOIONqXHt/CzUeZKbhj3hl6wwr HExdEdXk1s7djiwT1Yy5eN0n/EWyDPkdLNVUpW/2Bp1S1ACvE3EbqDYA8CBWu7sbQuwz9nPl q0LeJREgAwdn4p6bFlvWvqawB+kVnfD7lt5T4FwXe77pvMKV30lRd6F7z2pAUGs+ew6/RAuh jDJCsvD0cY9wJNP10ACCiVj6MYIEETCCBA0CAQEwgaAwgZQxCzAJBgNVBAYTAkRFMTIwMAYD VQQKEylGb3JzY2h1bmdzemVudHJ1bSBEcmVzZGVuLVJvc3NlbmRvcmYgZS5WLjEgMB4GA1UE CxMXSW5mb3JtYXRpb25zdGVjaG5vbG9naWUxFTATBgNVBAMTDEZaRC1DQSAtIEcwMjEYMBYG CSqGSIb3DQEJARYJcmFAZnpkLmRlAgcWPpFDJ5koMA0GCWCGSAFlAwQCAQUAoIICQTAYBgkq hkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xNjA2MTYxMjU1NTJaMC8G CSqGSIb3DQEJBDEiBCBLB5D+wbTK03e8iEA/oE/P8h1xxeesEytHB9hW94zFUjBsBgkqhkiG 9w0BCQ8xXzBdMAsGCWCGSAFlAwQBKjALBglghkgBZQMEAQIwCgYIKoZIhvcNAwcwDgYIKoZI hvcNAwICAgCAMA0GCCqGSIb3DQMCAgFAMAcGBSsOAwIHMA0GCCqGSIb3DQMCAgEoMIGxBgkr BgEEAYI3EAQxgaMwgaAwgZQxCzAJBgNVBAYTAkRFMTIwMAYDVQQKEylGb3JzY2h1bmdzemVu dHJ1bSBEcmVzZGVuLVJvc3NlbmRvcmYgZS5WLjEgMB4GA1UECxMXSW5mb3JtYXRpb25zdGVj aG5vbG9naWUxFTATBgNVBAMTDEZaRC1DQSAtIEcwMjEYMBYGCSqGSIb3DQEJARYJcmFAZnpk LmRlAgcWPpFDJ5koMIGzBgsqhkiG9w0BCRACCzGBo6CBoDCBlDELMAkGA1UEBhMCREUxMjAw BgNVBAoTKUZvcnNjaHVuZ3N6ZW50cnVtIERyZXNkZW4tUm9zc2VuZG9yZiBlLlYuMSAwHgYD VQQLExdJbmZvcm1hdGlvbnN0ZWNobm9sb2dpZTEVMBMGA1UEAxMMRlpELUNBIC0gRzAyMRgw FgYJKoZIhvcNAQkBFglyYUBmemQuZGUCBxY+kUMnmSgwDQYJKoZIhvcNAQEBBQAEggEAj23r fkcRrXrTc7ncdGMeysrThBHGfIwCIIJSdRnLP6twVpHs6nBInHOULfM0ykloajXv9R1JE5xh 3L8+AIAuJsRS2Mieo0vDyH2p/YdcYjMPGxcABFsQK3boUFUEXdHiK0xlmNuh1OjpnKdceG5a vOkSMpM4IH3XzLOl3xYy4bOtvklfCy+7H1MD5Ve0yr4rPcmbuP0724TrSej04GkH7DFq+L12 pJWo+T3W9dx4k1ZPY/zNsiec8kj6mib0J7T7fKPrmMUoMFqOh9+jz2QVNmVFWMRyb2GNCdew dX6cqXp9eyKTV2jDGRGKpQ2/kptVt9CVZtbMS0zx89N912OAkgAAAAAAAA== --------------ms060502050902020405000004--