Solar cell damage (eqflux)
Model API name: eqflux
Damage-equivalent electron fluences for different types of solar cells.
Version: v1
Category: model/effects/radiation/damage
Keywords: solar cell, damage equivalent electron fluences
External Input: trappedParticleSpectrum
Input | Value |
---|---|
Model name |
ae8ap8
trapped-spectrum-ud
trep_upload
irene
jorem-trapped
trep
trep_larb
trep_jup
crres
|
omep
|
Quantity | energy_flux_spectrum |
External Input: solarParticleSpectrum
Input group: eqflux / multiplicity: one
solar cell details
Input | Description | Valid values | Default | Quantity |
---|---|---|---|---|
cellType | Cell type, single or multiple junction |
1=Single junction 2=Multiple junction 3=User defined |
2 | number |
singleJunctionCell |
Single junction material
Used if cellType==0 |
1=Silicon (Si) 2=Gallium Arsenide (GaAs) |
1 | number |
multipleJunctionCell |
Material junction material
Used if cellType==1 |
1=Spectrolab 2J 2=Spectrolab 2J EOL 3=TECSTAR 3J 4=Spectrolab 3J 5=Spectrolab 3J EOL 6=AZUR GAGET 7=AZUR 3G28 8=EMCORE ATJ 9=Spectrolab UTJ 10=Spectrolab XTJ 11=AZUR 3G28 - SR-NIEL 21 eV 12=AZUR 3G30 - SR-NIEL 21 eV 13=Spectrolab XTJ PRIME 14=CESI CTJ30 15=CESI CTJ-LC 16=AZUR 4G32 - SR-NIEL 21 eV |
12 | number |
coverglass
Input | Description | Valid values | Default | Quantity |
---|---|---|---|---|
coverglassThickness | Thickness of the solar cell cover glass |
min: 0 note: Positive values |
100 | thickness |
coverglassThicknessUnit | Units of the solar cell thickness value |
3=um 2=g/cm^2 1=mils |
3 | number |
|
None
# coding=utf-8
import os
from pathlib import Path
import nom_client as nc
from nom_client.nom_client import NoMClient
print( 'NoM Client Version: ' + nc.__version__)
cwd = os.getcwd()
homeDir = str(Path.home())
conf = homeDir + '/.nom/nom.cfg'
model_dir = cwd + '/..'
nom_client = NoMClient("eqflux-example", client_configuration=conf,
default_server_id="local_server",
debug_output=False)
trpModel='ae8ap8'
sepModel='esp-psychic-total-fluence'
server_id = 'dev'
models = {}
results = {}
m = 'sapre'
print(m + "...", end="")
models[m] = nom_client.get_model( m, server_id=server_id )
models[m].set_params(
planet=3,
missionDurationUnits=0,
missionDuration=15,
orbitType='GEN', altitudeSpecification=2, altitude=1000, inclination=60.0,
trajectoryOrbits=1, trajectoryDuration=1,
trajectoryFlag=1
)
results[m] = nom_client.run_model(model=models[m], server_id=server_id)
print("done")
m = trpModel
print(m + "...", end="")
models[m] = nom_client.get_model( m, server_id=server_id )
models[m].set_params( )
models[m].set_external_input(
external_input_name='trajectory',
external_input=results['sapre']
)
results[m] = nom_client.run_model(model=models[m], server_id=server_id)
print("done")
m = sepModel
print(m + "...", end="")
models[m] = nom_client.get_model( m, server_id=server_id )
models[m].set_params( )
models[m].set_external_input(
external_input_name='trajectory',
external_input=results['sapre']
)
results[m] = nom_client.run_model(model=models[m], server_id=server_id)
print("done")
print("")
print(".... Running EQFLUX ....")
m = 'eqflux'
print(m + "...", end="")
local_model = nom_client.get_model( m, server_id='local_server')
local_model.set_params(
cellType=2,
multipleJunctionCell=12,
coverglassThickness=100,
coverglassThicknessUnit=3
)
local_model.set_external_input(
external_input_name='trappedParticleSpectrum',
external_input=results[trpModel]
)
local_model.set_external_input(
external_input_name='solarParticleSpectrum',
external_input=results[sepModel]
)
#
local_results = nom_client.run_model( model=local_model)
print("done")
print(local_results)
outputs = local_results['summary_equivalent_fluences_pmax']
print(outputs)
def list_eqflux( results, title="", param='pmax'):
op = 'summary_equivalent_fluences_' + param
thick = results[op].get_variable_data('depth').squeeze()
source = results[op].get_variable_data('population').squeeze()
tid = results[op].get_variable_data('fluence').squeeze()
sc_name = results[source][op].get_metadata()
print(sc_name)
print(title + ', Solar Cell, ' + param.capitalize())
print('{0:8>}'.format('Z[micron]'), end='')
for j, s in enumerate(source):
print(', {0:8>}'.format(s), end='')
print()
for i, e in enumerate(thick):
print('{0:8.2f}'.format(e), end='')
for j, s in enumerate(source):
print(', {0:8.2e}'.format(tid[j][i]), end='')
print()
print()
print("-----------------")
for x in ['pmax','voc','isc']:
list_eqflux( local_results, param=x)
print()
No references