Newer
Older
Kurt A. O'Hearn
committed
}
static void Finalize_Lists( control_params * const control, reax_list ** const lists )
Kurt A. O'Hearn
committed
{
Kurt A. O'Hearn
committed
int i;
for ( i = 0; i < LIST_N; ++i )
Kurt A. O'Hearn
committed
{
Kurt A. O'Hearn
committed
sfree( lists[i], "Finalize_Lists::lists[i]" );
Kurt A. O'Hearn
committed
}
}
static void Finalize_MPI_Datatypes( mpi_datatypes * const mpi_data )
Kurt A. O'Hearn
committed
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
{
int ret;
Deallocate_MPI_Buffers( mpi_data );
ret = MPI_Type_free( &mpi_data->mpi_atom_type );
Check_MPI_Error( ret, "Finalize_MPI_Datatypes::mpi_data->mpi_atom_type" );
ret = MPI_Type_free( &mpi_data->boundary_atom_type );
Check_MPI_Error( ret, "Finalize_MPI_Datatypes::mpi_data->boundary_atom_type" );
ret = MPI_Type_free( &mpi_data->mpi_rvec );
Check_MPI_Error( ret, "Finalize_MPI_Datatypes::mpi_data->mpi_rvec" );
ret = MPI_Type_free( &mpi_data->mpi_rvec2 );
Check_MPI_Error( ret, "Finalize_MPI_Datatypes::mpi_data->mpi_rvec2" );
ret = MPI_Type_free( &mpi_data->restart_atom_type );
Check_MPI_Error( ret, "Finalize_MPI_Datatypes::mpi_data->restart_atom_type" );
}
/* Deallocate top-level data structures, close file handles, etc.
*
*/
void Finalize( reax_system * const system, control_params * const control,
simulation_data * const data, storage * const workspace, reax_list ** const lists,
output_controls * const out_control, mpi_datatypes * const mpi_data,
const int output_enabled )
Kurt A. O'Hearn
committed
{
if ( control->tabulate )
{
Finalize_LR_Lookup_Table( system, control, workspace, mpi_data );
}
if ( output_enabled == TRUE )
{
Finalize_Output_Files( system, control, out_control );
}
Finalize_Lists( control, lists );
Kurt A. O'Hearn
committed
// Finalize_Workspace( system, control, workspace );
Kurt A. O'Hearn
committed
Finalize_Simulation_Data( system, control, data, out_control );
Finalize_System( system, control, data );
Finalize_MPI_Datatypes( mpi_data );
}