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]