def create_wavepacket(self, description): wp_type = description["type"] if wp_type == "HagedornWavepacket": from HagedornWavepacket import HagedornWavepacket # Initialize a packet WP = HagedornWavepacket(description["dimension"], description["ncomponents"], description["eps"]) # Set parameters if description.has_key("Pi"): Pi = description["Pi"] WP.set_parameters(Pi) # Configure basis shapes if description.has_key("basis_shapes"): for component, shapedescr in enumerate( description["basis_shapes"]): BS = self.create_basis_shape(shapedescr) WP.set_basis_shape(BS, component=component) # Set coefficients if description.has_key("coefficients"): for component, data in enumerate(description["coefficients"]): for index, value in data: WP.set_coefficient(component, index, value) # And the quadrature if description.has_key("quadrature"): QE = self.create_quadrature(description["quadrature"]) WP.set_quadrature(QE) else: print("Warning: no quadrature specified!") elif wp_type == "HagedornWavepacketInhomogeneous": from HagedornWavepacketInhomogeneous import HagedornWavepacketInhomogeneous # Initialize a packet WP = HagedornWavepacketInhomogeneous(description["dimension"], description["ncomponents"], description["eps"]) # Set parameters if description.has_key("Pi"): Pi = description["Pi"] WP.set_parameters(Pi) # Configure basis shapes if description.has_key("basis_shapes"): for component, shapedescr in enumerate( description["basis_shapes"]): BS = self.create_basis_shape(shapedescr) WP.set_basis_shape(BS, component=component) # Set coefficients if description.has_key("coefficients"): for component, data in enumerate(description["coefficients"]): for index, value in data: WP.set_coefficient(component, index, value) # And the quadrature if description.has_key("quadrature"): QE = self.create_quadrature(description["quadrature"]) WP.set_quadrature(QE) else: print("Warning: no quadrature specified!") else: raise ValueError("Unknown wavepacket type " + str(wp_type)) return WP