From 3e0a8e4b6a8deea15d2a9b43a75a374f0758e183 Mon Sep 17 00:00:00 2001 From: Craig Warren Date: Mon, 20 Mar 2017 16:17:26 +0000 Subject: [PATCH] Improved material properties collecting for printing table. --- gprMax/materials.py | 78 ++++++++++++++++++++------------------------- 1 file changed, 34 insertions(+), 44 deletions(-) diff --git a/gprMax/materials.py b/gprMax/materials.py index 9fa09f12..7f37e534 100644 --- a/gprMax/materials.py +++ b/gprMax/materials.py @@ -149,12 +149,10 @@ def process_materials(G): materialsdata (list): List of material IDs, names, and properties to print a table. """ - if G.messages: - print('\nMaterials:') - if Material.maxpoles == 0: - materialsdata = [['\nID', '\nName', '\nType', '\neps_r', 'sigma\n[S/m]', '\nmu_r', 'sigma*\n[Ohm/m]', 'Dielectric\nsmoothable']] - else: - materialsdata = [['\nID', '\nName', '\nType', '\neps_r', 'sigma\n[S/m]', 'Delta\neps_r', 'tau\n[s]', 'omega\n[Hz]', 'delta\n[Hz]', 'gamma\n[Hz]', '\nmu_r', 'sigma*\n[Ohm/m]', 'Dielectric\nsmoothable']] + if Material.maxpoles == 0: + materialsdata = [['\nID', '\nName', '\nType', '\neps_r', 'sigma\n[S/m]', '\nmu_r', 'sigma*\n[Ohm/m]', 'Dielectric\nsmoothable']] + else: + materialsdata = [['\nID', '\nName', '\nType', '\neps_r', 'sigma\n[S/m]', 'Delta\neps_r', 'tau\n[s]', 'omega\n[Hz]', 'delta\n[Hz]', 'gamma\n[Hz]', '\nmu_r', 'sigma*\n[Ohm/m]', 'Dielectric\nsmoothable']] for material in G.materials: # Calculate update coefficients for material @@ -172,46 +170,38 @@ def process_materials(G): G.updatecoeffsdispersive[material.numID, z:z + 3] = e0 * material.eqt2[pole], material.eqt[pole], material.zt[pole] z += 3 - if G.messages: - materialtext = [] - materialtext.append(str(material.numID)) - materialtext.append(material.ID[:50] if len(material.ID) > 50 else material.ID) - materialtext.append(material.type) - materialtext.append('{:g}'.format(material.er)) - materialtext.append('{:g}'.format(material.se)) - if Material.maxpoles > 0: - if 'debye' in material.type: - materialtext.append(', '.join('{:g}'.format(deltaer) for deltaer in material.deltaer)) - materialtext.append(', '.join('{:g}'.format(tau) for tau in material.tau)) - materialtext.append('') - materialtext.append('') - materialtext.append('') - elif 'lorentz' in material.type: - materialtext.append(', '.join('{:g}'.format(deltaer) for deltaer in material.deltaer)) - materialtext.append('') - materialtext.append(', '.join('{:g}'.format(tau) for tau in material.tau)) - materialtext.append(', '.join('{:g}'.format(alpha) for alpha in material.alpha)) - materialtext.append('') - elif 'drude' in material.type: - materialtext.append('') - materialtext.append('') - materialtext.append(', '.join('{:g}'.format(tau) for tau in material.tau)) - materialtext.append('') - materialtext.append(', '.join('{:g}'.format(alpha) for alpha in material.alpha)) - else: - materialtext.append('') - materialtext.append('') - materialtext.append('') - materialtext.append('') - materialtext.append('') + # Construct information on material properties for printing table + materialtext = [] + materialtext.append(str(material.numID)) + materialtext.append(material.ID[:50] if len(material.ID) > 50 else material.ID) + materialtext.append(material.type) + materialtext.append('{:g}'.format(material.er)) + materialtext.append('{:g}'.format(material.se)) + if Material.maxpoles > 0: + if 'debye' in material.type: + materialtext.append('\n'.join('{:g}'.format(deltaer) for deltaer in material.deltaer)) + materialtext.append('\n'.join('{:g}'.format(tau) for tau in material.tau)) + materialtext.extend(['', '', '']) + elif 'lorentz' in material.type: + materialtext.append(', '.join('{:g}'.format(deltaer) for deltaer in material.deltaer)) + materialtext.append('') + materialtext.append(', '.join('{:g}'.format(tau) for tau in material.tau)) + materialtext.append(', '.join('{:g}'.format(alpha) for alpha in material.alpha)) + materialtext.append('') + elif 'drude' in material.type: + materialtext.extend(['', '']) + materialtext.append(', '.join('{:g}'.format(tau) for tau in material.tau)) + materialtext.append('') + materialtext.append(', '.join('{:g}'.format(alpha) for alpha in material.alpha)) + else: + materialtext.extend(['', '', '', '', '']) - materialtext.append('{:g}'.format(material.mr)) - materialtext.append('{:g}'.format(material.sm)) - materialtext.append(material.averagable) - materialsdata.append(materialtext) + materialtext.append('{:g}'.format(material.mr)) + materialtext.append('{:g}'.format(material.sm)) + materialtext.append(material.averagable) + materialsdata.append(materialtext) - if G.messages: - return materialsdata + return materialsdata class PeplinskiSoil(object):