LCOV - code coverage report
Current view: top level - src - cp_realspace_grid_openpmd.F (source / functions) Coverage Total Hit
Test: CP2K Regtests (git:8ebf9ad) Lines: 0.0 % 16 0
Test Date: 2026-01-22 06:43:13 Functions: 0.0 % 1 0

            Line data    Source code
       1              : !--------------------------------------------------------------------------------------------------!
       2              : !   CP2K: A general program to perform molecular dynamics simulations                              !
       3              : !   Copyright 2000-2026 CP2K developers group <https://cp2k.org>                                   !
       4              : !                                                                                                  !
       5              : !   SPDX-License-Identifier: GPL-2.0-or-later                                                      !
       6              : !--------------------------------------------------------------------------------------------------!
       7              : 
       8              : ! **************************************************************************************************
       9              : !> \brief A wrapper around pw_to_openpmd() which accepts particle_list_type
      10              : !> \author Ole Schuett, Franz Poeschel
      11              : ! **************************************************************************************************
      12              : MODULE cp_realspace_grid_openpmd
      13              :    USE atomic_kind_types,               ONLY: get_atomic_kind
      14              :    USE kinds,                           ONLY: dp
      15              :    USE particle_list_types,             ONLY: particle_list_type
      16              :    USE pw_types,                        ONLY: pw_r3d_rs_type
      17              :    USE realspace_grid_openpmd,          ONLY: pw_to_openpmd
      18              : #include "./base/base_uses.f90"
      19              : 
      20              :    IMPLICIT NONE
      21              : 
      22              :    PRIVATE
      23              : 
      24              :    PUBLIC :: cp_pw_to_openpmd
      25              : 
      26              :    CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'cp_realspace_grid_openpmd'
      27              : 
      28              : CONTAINS
      29              : 
      30              : ! **************************************************************************************************
      31              : !> \brief ...
      32              : !> \param pw ...
      33              : !> \param unit_nr ...
      34              : !> \param title ...
      35              : !> \param particles ...
      36              : !> \param zeff ...
      37              : !> \param stride ...
      38              : !> \param zero_tails ...
      39              : !> \param silent ...
      40              : !> \param mpi_io ...
      41              : ! **************************************************************************************************
      42            0 :    SUBROUTINE cp_pw_to_openpmd( &
      43              :       pw, &
      44              :       unit_nr, &
      45              :       title, &
      46              :       particles, &
      47            0 :       zeff, &
      48              :       stride, &
      49              :       zero_tails, &
      50              :       silent, &
      51              :       mpi_io &
      52              :       )
      53              :       TYPE(pw_r3d_rs_type), INTENT(IN)                   :: pw
      54              :       INTEGER, INTENT(IN)                                :: unit_nr
      55              :       CHARACTER(*), INTENT(IN), OPTIONAL                 :: title
      56              :       TYPE(particle_list_type), POINTER                  :: particles
      57              :       REAL(KIND=dp), DIMENSION(:), OPTIONAL              :: zeff
      58              :       INTEGER, DIMENSION(:), OPTIONAL, POINTER           :: stride
      59              :       LOGICAL, INTENT(IN), OPTIONAL                      :: zero_tails, silent, mpi_io
      60              : 
      61              :       INTEGER                                            :: i, n
      62            0 :       INTEGER, ALLOCATABLE, DIMENSION(:)                 :: particles_z
      63            0 :       REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :)        :: particles_r
      64              :       TYPE(particle_list_type), POINTER                  :: my_particles
      65              : 
      66            0 :       NULLIFY (my_particles)
      67            0 :       my_particles => particles
      68            0 :       IF (ASSOCIATED(my_particles)) THEN
      69            0 :          n = my_particles%n_els
      70            0 :          ALLOCATE (particles_z(n))
      71            0 :          ALLOCATE (particles_r(3, n))
      72            0 :          DO i = 1, n
      73            0 :             CALL get_atomic_kind(my_particles%els(i)%atomic_kind, z=particles_z(i))
      74            0 :             particles_r(:, i) = my_particles%els(i)%r(:)
      75              :          END DO
      76              : 
      77              :          CALL pw_to_openpmd(pw=pw, unit_nr=unit_nr, title=title, &
      78              :                             particles_z=particles_z, particles_r=particles_r, &
      79              :                             particles_zeff=zeff, &
      80              :                             stride=stride, zero_tails=zero_tails, &
      81            0 :                             silent=silent, mpi_io=mpi_io)
      82              :       ELSE
      83              :          CALL pw_to_openpmd(pw=pw, unit_nr=unit_nr, title=title, &
      84              :                             stride=stride, zero_tails=zero_tails, &
      85            0 :                             silent=silent, mpi_io=mpi_io)
      86              :       END IF
      87              : 
      88            0 :    END SUBROUTINE cp_pw_to_openpmd
      89              : 
      90              : END MODULE cp_realspace_grid_openpmd
        

Generated by: LCOV version 2.0-1