Example #1
0
 def __init__(self, constant=-1.0, shift=1.0, *args, **kwargs):
     super(Constant, self).__init__(*args, **kwargs)
     HasExactSolutionMixin.__init__(self, *args, **kwargs)
     self.time_start = 0.0
     self.time_end = 1.0
     self.initial_value = shift * np.ones(self.dim_for_time_solver)
     self.constant = constant
     self._exact_function = lambda t: self.initial_value + self.constant * t
     self._strings['rhs_wrt_time'] = "C"
     self._strings['exact'] = 'u_0 + C * t'
Example #2
0
    def __init__(self, *args, **kwargs):
        super(LambdaU, self).__init__(*args, **kwargs)
        HasExactSolutionMixin.__init__(self, *args, **kwargs)
        HasDirectImplicitMixin.__init__(self, *args, **kwargs)
        if self.time_start is None:
            self.time_start = 0.0
        if self.time_end is None:
            self.time_end = 1.0
        if self.initial_value is None:
            self.initial_value = complex(1.0, 0.0) * np.ones(self.dim)
            # self.initial_value = 1.0 * np.ones(self.dim)

        self.lmbda = kwargs.get('lmbda', 1.0)

        if isinstance(self.lmbda, complex):
            self.numeric_type = np.complex

        self.exact_function = lambda phi_of_time: self.initial_value * np.exp(self.lmbda * phi_of_time)

        self._strings['rhs_wrt_time'] = r"\lambda u(t, \phi(t))"
        self._strings['exact'] = r"e^{\lambda t}"
    def __init__(self, *args, **kwargs):
        super(OneDimensionalHeatEquation, self).__init__(*args, **kwargs)
        HasExactSolutionMixin.__init__(self, *args, **kwargs)
        HasDirectImplicitMixin.__init__(self, *args, **kwargs)

        if self.time_start is None:
            self.time_start = 0.0
        if self.time_end is None:
            self.time_end = 1.0
        if self.initial_value is None:
            self.initial_value = complex(1.0, 0.0) * np.ones(self.dim)

        if "alpha" not in kwargs:
            kwargs["alpha"] = 1.0
        self.alpha = kwargs["alpha"]

        if isinstance(self.alpha, complex):
            self.numeric_type = np.complex

        # self.exact_function = lambda phi_of_time: self.initial_value * np.exp(self.lmbda * phi_of_time)

        self._strings["rhs"] = r"\alpha \laplace u(x,t)"
        self._strings["exact"] = r"derivable using Fourier transformation"
Example #4
0
 def __str__(self):
     _outstr = super(Constant, self).__str__()
     _outstr += r", C={}".format(self.constant)
     _outstr += HasExactSolutionMixin.__str__(self)
     return _outstr
Example #5
0
 def print_lines_for_log(self):
     _lines = super(Constant, self).print_lines_for_log()
     _lines.update(HasExactSolutionMixin.print_lines_for_log(self))
     _lines['Coefficients'] = 'C = {:.3f}'.format(self.constant)
     return _lines
Example #6
0
 def __str__(self):
     _outstr = super(LambdaU, self).__str__()
     _outstr += r", \lambda=%s" % self.lmbda
     _outstr += HasExactSolutionMixin.__str__(self)
     return _outstr
Example #7
0
 def print_lines_for_log(self):
     _lines = super(LambdaU, self).print_lines_for_log()
     _lines.update(HasExactSolutionMixin.print_lines_for_log(self))
     _lines['Coefficients'] = '\lambda = %s' % self.lmbda
     return _lines