Initial implementation of fix_external_get_force
This commit is contained in:
@ -758,7 +758,12 @@ MODULE LIBLAMMPS
|
|||||||
TYPE(c_ptr), VALUE :: handle, id, ptr
|
TYPE(c_ptr), VALUE :: handle, id, ptr
|
||||||
TYPE(c_funptr), VALUE :: funcptr
|
TYPE(c_funptr), VALUE :: funcptr
|
||||||
END SUBROUTINE lammps_set_fix_external_callback
|
END SUBROUTINE lammps_set_fix_external_callback
|
||||||
!FUNCTION lammps_fix_external_get_force() ! returns real(c_double)(:)
|
|
||||||
|
FUNCTION lammps_fix_external_get_force(handle, id) BIND(C)
|
||||||
|
IMPORT :: c_ptr
|
||||||
|
TYPE(c_ptr), VALUE :: handle, id
|
||||||
|
TYPE(c_ptr) :: lammps_fix_external_get_force
|
||||||
|
END FUNCTION lammps_fix_external_get_force
|
||||||
|
|
||||||
!SUBROUTINE lammps_fix_external_set_energy_global
|
!SUBROUTINE lammps_fix_external_set_energy_global
|
||||||
!SUBROUTINE lammps_fix_external_set_energy_peratom
|
!SUBROUTINE lammps_fix_external_set_energy_peratom
|
||||||
@ -2569,6 +2574,23 @@ CONTAINS
|
|||||||
END IF
|
END IF
|
||||||
END SUBROUTINE callback_wrapper_bigbig
|
END SUBROUTINE callback_wrapper_bigbig
|
||||||
|
|
||||||
|
! equivalent function to lammps_fix_external_get_force
|
||||||
|
FUNCTION lmp_fix_external_get_force(self, id) RESULT(fexternal)
|
||||||
|
CLASS(lammps), INTENT(IN) :: self
|
||||||
|
CHARACTER(LEN=*), INTENT(IN) :: id
|
||||||
|
REAL(c_double), DIMENSION(:,:), POINTER :: fexternal
|
||||||
|
TYPE(c_ptr) :: ptr, Cid
|
||||||
|
TYPE(c_ptr), DIMENSION(:), POINTER :: f
|
||||||
|
INTEGER(c_int) :: nmax
|
||||||
|
|
||||||
|
Cid = f2c_string(id)
|
||||||
|
ptr = lammps_fix_external_get_force(self%handle, Cid)
|
||||||
|
nmax = lmp_extract_setting(self, 'nmax')
|
||||||
|
CALL C_F_POINTER(ptr, f, [nmax])
|
||||||
|
CALL C_F_POINTER(f(1), fexternal, [3, nmax])
|
||||||
|
CALL lammps_free(Cid)
|
||||||
|
END FUNCTION lmp_fix_external_get_force
|
||||||
|
|
||||||
! equivalent function to lammps_flush_buffers
|
! equivalent function to lammps_flush_buffers
|
||||||
SUBROUTINE lmp_flush_buffers(self)
|
SUBROUTINE lmp_flush_buffers(self)
|
||||||
CLASS(lammps), INTENT(IN) :: self
|
CLASS(lammps), INTENT(IN) :: self
|
||||||
|
|||||||
Reference in New Issue
Block a user