Module Write_txt

@author: Alexandre Sac–Morane alexandre.sac-morane@uclouvain.be

This file allow to create a .txt. The .txt contains data about grains, contact grain-wall and contact wall-wall.

Expand source code
# -*- coding: utf-8 -*-
"""
@author: Alexandre Sac--Morane
alexandre.sac-morane@uclouvain.be

This file allow to create a .txt.
The .txt contains data about grains, contact grain-wall and contact wall-wall.
"""

#-------------------------------------------------------------------------------
#Librairies
#-------------------------------------------------------------------------------

import Grain
import Contact
import Contact_gw

#-------------------------------------------------------------------------------
#
#-------------------------------------------------------------------------------

def Write_txt(dict_algorithm,dict_sample):
    """
    Write a .txt file to give information about grains and contacts.

        Input :
            an algorithm dictionnary (a dict)
            a sample dictionnary (a dict)
        Output :
            Nothing, but a .txt file is generated (a .txt)
    """
    file_to_write = open('Debug/DEM_ite/PF_'+str(dict_algorithm['i_PF'])+'/txt/ite_DEM_'+str(dict_algorithm['i_DEM'])+'.txt','w')
    file_to_write.write('Iteration PF : '+str(dict_algorithm['i_PF'])+'\n'+\
                        'Iteration DEM : '+str(dict_algorithm['i_DEM'])+'\n')
    file_to_write.write('\n')
    file_to_write.write('GRAINS LIST\n')
    file_to_write.write('\n')
    for grain in dict_sample['L_g']:
        file_to_write.write('<grain_o>\n')
        file_to_write.write('\tid : '+str(grain.id)+'\n')
        if grain.dissolved :
            file_to_write.write('\tDissolved : True\n')
        else:
            file_to_write.write('\tDissolved : False\n')
        file_to_write.write('\tCenter : ['+str(int(grain.center[0]))+', '+str(int(grain.center[1]))+']\n')
        file_to_write.write('\tSpeed : ['+str(round(grain.v[0],2))+', '+str(round(grain.v[1],2))+']\n')
        file_to_write.write('\tForce applied : ['+str(round(grain.f[0],1))+', '+str(round(grain.f[1],1))+']\n')
        file_to_write.write('\tOmega : '+str(grain.w)+'\n')
        file_to_write.write('\tSurface : '+str(int(grain.surface))+'\n')
        file_to_write.write('\tCoordinate X of the border : '+str(grain.l_border_x)+'\n')
        file_to_write.write('\tCoordinate Y of the border : '+str(grain.l_border_y)+'\n')
        file_to_write.write('<grain_c>\n')
    file_to_write.write('\n')
    file_to_write.write('CONTACTS LIST\n')
    file_to_write.write('\n')
    for contact in dict_sample['L_contact']:
        file_to_write.write('<contact_o>\n')
        file_to_write.write('\tid : '+str(contact.id)+'\n')
        file_to_write.write('\tGrains : '+str(contact.g1.id)+'-'+str(contact.g2.id)+'\n')
        file_to_write.write('\tNormal : ['+str(round(contact.pc_normal[0],2))+', '+str(round(contact.pc_normal[1],2))+']\n')
        file_to_write.write('\tNormal overlap : '+str(round(contact.overlap_normal,2))+'\n')
        file_to_write.write('\tNormal reaction : '+str(int(contact.F_2_1_n))+'\n')
        file_to_write.write('\tNormal damping : '+str(int(contact.F_2_1_damp))+'\n')
        file_to_write.write('\tTangential : ['+str(round(contact.pc_tangential[0],2))+', '+str(round(contact.pc_tangential[1],2))+']\n')
        file_to_write.write('\tTangential overlap : '+str(round(contact.overlap_tangential,2))+'\n')
        file_to_write.write('\tTangential reaction : '+str(int(contact.ft))+'\n')
        file_to_write.write('\tTangential damping : '+str(int(contact.ft_damp))+'\n')
        file_to_write.write('<contact_c>\n')
    file_to_write.write('\n')
    file_to_write.write('CONTACTS WITH WALL LIST\n')
    file_to_write.write('\n')
    for contact in dict_sample['L_contact_gw']:
        file_to_write.write('<contact_w_o>\n')
        file_to_write.write('\tid : '+str(contact.id)+'\n')
        file_to_write.write('\tType : '+str(contact.nature)+'\n')
        file_to_write.write('\tGrain : '+str(contact.g.id)+'\n')
        file_to_write.write('\tLimit : '+str(contact.limit)+'\n')
        file_to_write.write('\tNormal : ['+str(round(contact.nwg[0],2))+', '+str(round(contact.nwg[1],2))+']\n')
        file_to_write.write('\tNormal overlap : '+str(round(contact.overlap,2))+'\n')
        file_to_write.write('\tNormal reaction : '+str(int(contact.Fwg_n))+'\n')
        file_to_write.write('\tNormal damping : '+str(int(contact.Fwg_damp_n))+'\n')
        file_to_write.write('\tTangential : ['+str(round(contact.twg[0],2))+', '+str(round(contact.twg[1],2))+']\n')
        file_to_write.write('\tTangential overlap : '+str(round(contact.overlap_tangential,2))+'\n')
        file_to_write.write('\tTangential reaction : '+str(int(contact.ft))+'\n')
        file_to_write.write('<contact_w_c>\n')
    file_to_write.close()

Functions

def Write_txt(dict_algorithm, dict_sample)

Write a .txt file to give information about grains and contacts.

Input :
    an algorithm dictionnary (a dict)
    a sample dictionnary (a dict)
Output :
    Nothing, but a .txt file is generated (a .txt)
Expand source code
def Write_txt(dict_algorithm,dict_sample):
    """
    Write a .txt file to give information about grains and contacts.

        Input :
            an algorithm dictionnary (a dict)
            a sample dictionnary (a dict)
        Output :
            Nothing, but a .txt file is generated (a .txt)
    """
    file_to_write = open('Debug/DEM_ite/PF_'+str(dict_algorithm['i_PF'])+'/txt/ite_DEM_'+str(dict_algorithm['i_DEM'])+'.txt','w')
    file_to_write.write('Iteration PF : '+str(dict_algorithm['i_PF'])+'\n'+\
                        'Iteration DEM : '+str(dict_algorithm['i_DEM'])+'\n')
    file_to_write.write('\n')
    file_to_write.write('GRAINS LIST\n')
    file_to_write.write('\n')
    for grain in dict_sample['L_g']:
        file_to_write.write('<grain_o>\n')
        file_to_write.write('\tid : '+str(grain.id)+'\n')
        if grain.dissolved :
            file_to_write.write('\tDissolved : True\n')
        else:
            file_to_write.write('\tDissolved : False\n')
        file_to_write.write('\tCenter : ['+str(int(grain.center[0]))+', '+str(int(grain.center[1]))+']\n')
        file_to_write.write('\tSpeed : ['+str(round(grain.v[0],2))+', '+str(round(grain.v[1],2))+']\n')
        file_to_write.write('\tForce applied : ['+str(round(grain.f[0],1))+', '+str(round(grain.f[1],1))+']\n')
        file_to_write.write('\tOmega : '+str(grain.w)+'\n')
        file_to_write.write('\tSurface : '+str(int(grain.surface))+'\n')
        file_to_write.write('\tCoordinate X of the border : '+str(grain.l_border_x)+'\n')
        file_to_write.write('\tCoordinate Y of the border : '+str(grain.l_border_y)+'\n')
        file_to_write.write('<grain_c>\n')
    file_to_write.write('\n')
    file_to_write.write('CONTACTS LIST\n')
    file_to_write.write('\n')
    for contact in dict_sample['L_contact']:
        file_to_write.write('<contact_o>\n')
        file_to_write.write('\tid : '+str(contact.id)+'\n')
        file_to_write.write('\tGrains : '+str(contact.g1.id)+'-'+str(contact.g2.id)+'\n')
        file_to_write.write('\tNormal : ['+str(round(contact.pc_normal[0],2))+', '+str(round(contact.pc_normal[1],2))+']\n')
        file_to_write.write('\tNormal overlap : '+str(round(contact.overlap_normal,2))+'\n')
        file_to_write.write('\tNormal reaction : '+str(int(contact.F_2_1_n))+'\n')
        file_to_write.write('\tNormal damping : '+str(int(contact.F_2_1_damp))+'\n')
        file_to_write.write('\tTangential : ['+str(round(contact.pc_tangential[0],2))+', '+str(round(contact.pc_tangential[1],2))+']\n')
        file_to_write.write('\tTangential overlap : '+str(round(contact.overlap_tangential,2))+'\n')
        file_to_write.write('\tTangential reaction : '+str(int(contact.ft))+'\n')
        file_to_write.write('\tTangential damping : '+str(int(contact.ft_damp))+'\n')
        file_to_write.write('<contact_c>\n')
    file_to_write.write('\n')
    file_to_write.write('CONTACTS WITH WALL LIST\n')
    file_to_write.write('\n')
    for contact in dict_sample['L_contact_gw']:
        file_to_write.write('<contact_w_o>\n')
        file_to_write.write('\tid : '+str(contact.id)+'\n')
        file_to_write.write('\tType : '+str(contact.nature)+'\n')
        file_to_write.write('\tGrain : '+str(contact.g.id)+'\n')
        file_to_write.write('\tLimit : '+str(contact.limit)+'\n')
        file_to_write.write('\tNormal : ['+str(round(contact.nwg[0],2))+', '+str(round(contact.nwg[1],2))+']\n')
        file_to_write.write('\tNormal overlap : '+str(round(contact.overlap,2))+'\n')
        file_to_write.write('\tNormal reaction : '+str(int(contact.Fwg_n))+'\n')
        file_to_write.write('\tNormal damping : '+str(int(contact.Fwg_damp_n))+'\n')
        file_to_write.write('\tTangential : ['+str(round(contact.twg[0],2))+', '+str(round(contact.twg[1],2))+']\n')
        file_to_write.write('\tTangential overlap : '+str(round(contact.overlap_tangential,2))+'\n')
        file_to_write.write('\tTangential reaction : '+str(int(contact.ft))+'\n')
        file_to_write.write('<contact_w_c>\n')
    file_to_write.close()