def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) diffusive_flux_aa_product = make_diffusive_flux_aa_product( self.grid, self.subdomain, self.block_space.local_space(self.subdomain), self.lambda_bar, lambda_u=self.lambda_xi, lambda_v=self.lambda_xi_prime, kappa=self.kappa, over_integrate=2) subdomain_walker = make_subdomain_walker(self.grid, self.subdomain) subdomain_walker.append(diffusive_flux_aa_product) subdomain_walker.walk() self.matrix = DuneXTMatrixOperator(diffusive_flux_aa_product.matrix(), range_id='domain_{}'.format(self.subdomain), source_id='domain_{}'.format(self.subdomain))
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) subdomain_space = self.block_space.local_space(self.subdomain) self.subdomain_rt_space = self.global_rt_space.restrict_to_dd_subdomain_part(self.grid, self.subdomain) diffusive_flux_ab_product = make_diffusive_flux_ab_product( self.grid, self.subdomain, range_space=subdomain_space, source_space=self.subdomain_rt_space, lambda_range=self.lambda_xi, lambda_hat=self.lambda_bar, kappa=self.kappa, over_integrate=2) subdomain_walker = make_subdomain_walker(self.grid, self.subdomain) subdomain_walker.append(diffusive_flux_ab_product) subdomain_walker.walk() self.matrix = DuneXTMatrixOperator(diffusive_flux_ab_product.matrix(), range_id='domain_{}'.format(self.subdomain), source_id='RT_{}'.format(self.subdomain))
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) if self.subdomain not in self._subdomain_rt_spaces: self._subdomain_rt_spaces[self.subdomain] = self.global_rt_space.restrict_to_dd_subdomain_part( self.grid, self.subdomain) self.subdomain_rt_space = self._subdomain_rt_spaces[self.subdomain] if self.subdomain not in self._matrices: h_div_semi_product = make_Hdiv_semi_product_matrix_operator_on_subdomain( self.grid, self.subdomain, self.subdomain_rt_space, over_integrate=2) subdomain_walker = make_subdomain_walker(self.grid, self.subdomain) subdomain_walker.append(h_div_semi_product) subdomain_walker.walk() self._matrices[self.subdomain] = DuneXTMatrixOperator(h_div_semi_product.matrix(), range_id='RT_{}'.format(self.subdomain), source_id='RT_{}'.format(self.subdomain)) self.matrix = self._matrices[self.subdomain]
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) if self.subdomain not in self._subdomain_rt_spaces: self._subdomain_rt_spaces[self.subdomain] = self.global_rt_space.restrict_to_dd_subdomain_part( self.grid, self.subdomain) self.subdomain_rt_space = self._subdomain_rt_spaces[self.subdomain] if self.subdomain not in self._matrices: diffusive_flux_bb_product = make_diffusive_flux_bb_product( self.grid, self.subdomain, self.subdomain_rt_space, self.lambda_bar, kappa=self.kappa, over_integrate=2) subdomain_walker = make_subdomain_walker(self.grid, self.subdomain) subdomain_walker.append(diffusive_flux_bb_product) subdomain_walker.walk() self._matrices[self.subdomain] = DuneXTMatrixOperator(diffusive_flux_bb_product.matrix(), range_id='RT_{}'.format(self.subdomain), source_id='RT_{}'.format(self.subdomain)) self.matrix = self._matrices[self.subdomain]
def __init__(self, f, *args, **kwargs): super().__init__(*args, **kwargs) self.range = NumpyVectorSpace(1) self.f = f if self.subdomain not in self._subdomain_rt_spaces: self._subdomain_rt_spaces[self.subdomain] = self.global_rt_space.restrict_to_dd_subdomain_part( self.grid, self.subdomain) self.subdomain_rt_space = self._subdomain_rt_spaces[self.subdomain] if self.subdomain not in self._vectors: eta_r_fxRu_functional = make_residual_part_vector_functional_on_subdomain( self.grid, self.subdomain, self.subdomain_rt_space, self.f, over_integrate=2) subdomain_walker = make_subdomain_walker(self.grid, self.subdomain) subdomain_walker.append(eta_r_fxRu_functional) subdomain_walker.walk() # too lazy to create the correct vector space belonging to self.subdomain_rt_space # which would be required for a VectorFunctional self._vectors[self.subdomain] = eta_r_fxRu_functional.vector() self.vector = self._vectors[self.subdomain]