From 6113267898fdf77ca4ca6c86db4ac48732bd45f4 Mon Sep 17 00:00:00 2001 From: "L. Diana Amorim" Date: Wed, 18 Dec 2019 16:16:24 -0800 Subject: Tried to add PICMI class for ionization --- Python/pywarpx/picmi.py | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'Python/pywarpx/picmi.py') diff --git a/Python/pywarpx/picmi.py b/Python/pywarpx/picmi.py index 6e9c9153b..b207ef0a5 100644 --- a/Python/pywarpx/picmi.py +++ b/Python/pywarpx/picmi.py @@ -56,6 +56,15 @@ class Species(picmistandard.PICMI_Species): if self.mass is None: self.mass = element.mass*periodictable.constants.atomic_mass_constant + if 'ionization' in self.interactions: + if self.interactions[1]=='ADK': + species.do_field_ionization=1 + species.physical_element=self.particle_type + species.ionization_product_species = self.interactions[2] + species.ionization_initial_level = self.charge_state + else: + raise Exception('WarpX only supports the ionization model of ADK') + def initialize_inputs(self, layout, initialize_self_fields=False): self.species_number = pywarpx.particles.nspecies pywarpx.particles.nspecies += 1 -- cgit v1.2.3 From 7fdcc5687efd5a9cd30814cd239fc3d457e05f35 Mon Sep 17 00:00:00 2001 From: "L. Diana Amorim" Date: Wed, 18 Dec 2019 16:28:41 -0800 Subject: Added print line to see absent interactions The search for ionization should only happen for particles other than elementary --- Python/pywarpx/picmi.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'Python/pywarpx/picmi.py') diff --git a/Python/pywarpx/picmi.py b/Python/pywarpx/picmi.py index 13774bff2..12accdee7 100644 --- a/Python/pywarpx/picmi.py +++ b/Python/pywarpx/picmi.py @@ -55,15 +55,15 @@ class Species(picmistandard.PICMI_Species): self.element = element if self.mass is None: self.mass = element.mass*periodictable.constants.atomic_mass_constant - - if 'ionization' in self.interactions: - if self.interactions[1]=='ADK': - species.do_field_ionization=1 - species.physical_element=self.particle_type - species.ionization_product_species = self.interactions[2] - species.ionization_initial_level = self.charge_state - else: - raise Exception('WarpX only supports the ionization model of ADK') + print(self.name,self.interactions) + if 'ionization' in self.interactions: + if self.interactions[1]=='ADK': + species.do_field_ionization=1 + species.physical_element=self.particle_type + species.ionization_product_species = self.interactions[2] + species.ionization_initial_level = self.charge_state + else: + raise Exception('WarpX only supports the ionization model of ADK') def initialize_inputs(self, layout, initialize_self_fields=False): self.species_number = pywarpx.particles.nspecies -- cgit v1.2.3 From fa66a510bb3c8180eaeb81c0625b853734264882 Mon Sep 17 00:00:00 2001 From: "L. Diana Amorim" Date: Fri, 20 Dec 2019 10:01:01 -0800 Subject: Fixed pywarpx class where ionization call is defined --- Python/pywarpx/picmi.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'Python/pywarpx/picmi.py') diff --git a/Python/pywarpx/picmi.py b/Python/pywarpx/picmi.py index 12accdee7..a2bbcaaad 100644 --- a/Python/pywarpx/picmi.py +++ b/Python/pywarpx/picmi.py @@ -55,15 +55,6 @@ class Species(picmistandard.PICMI_Species): self.element = element if self.mass is None: self.mass = element.mass*periodictable.constants.atomic_mass_constant - print(self.name,self.interactions) - if 'ionization' in self.interactions: - if self.interactions[1]=='ADK': - species.do_field_ionization=1 - species.physical_element=self.particle_type - species.ionization_product_species = self.interactions[2] - species.ionization_initial_level = self.charge_state - else: - raise Exception('WarpX only supports the ionization model of ADK') def initialize_inputs(self, layout, initialize_self_fields=False): self.species_number = pywarpx.particles.nspecies @@ -84,6 +75,14 @@ class Species(picmistandard.PICMI_Species): if self.initial_distribution is not None: self.initial_distribution.initialize_inputs(self.species_number, layout, self.species, self.density_scale) + for interaction in self.interactions: + print(self, interaction[2].name) + assert interaction[0] == 'ionization' + assert interaction[1] == 'ADK', 'WarpX only has ADK ionization model implemented' + self.species.do_field_ionization=1 + self.species.physical_element=self.particle_type + self.species.ionization_product_species = interaction[2].name + self.species.ionization_initial_level = self.charge_state picmistandard.PICMI_MultiSpecies.Species_class = Species class MultiSpecies(picmistandard.PICMI_MultiSpecies): -- cgit v1.2.3 From 75c29903039f32749c72317f7bb3f07c4156e7b2 Mon Sep 17 00:00:00 2001 From: "L. Diana Amorim" Date: Fri, 20 Dec 2019 10:03:00 -0800 Subject: Removed test function print() --- Python/pywarpx/picmi.py | 1 - 1 file changed, 1 deletion(-) (limited to 'Python/pywarpx/picmi.py') diff --git a/Python/pywarpx/picmi.py b/Python/pywarpx/picmi.py index a59e2a56d..224a53737 100644 --- a/Python/pywarpx/picmi.py +++ b/Python/pywarpx/picmi.py @@ -76,7 +76,6 @@ class Species(picmistandard.PICMI_Species): self.initial_distribution.initialize_inputs(self.species_number, layout, self.species, self.density_scale) for interaction in self.interactions: - print(self, interaction[2].name) assert interaction[0] == 'ionization' assert interaction[1] == 'ADK', 'WarpX only has ADK ionization model implemented' self.species.do_field_ionization=1 -- cgit v1.2.3