Examples update for v0.1 (#206)

* modify examples/problems
* modify tutorials

---------

Co-authored-by: Dario Coscia <dariocoscia@dhcp-235.eduroam.sissa.it>
Co-authored-by: Dario Coscia <dariocoscia@dhcp-015.eduroam.sissa.it>
This commit is contained in:
Dario Coscia
2023-11-14 18:24:07 +01:00
committed by Nicola Demo
parent 0d38de5afe
commit ee39b39805
19 changed files with 605 additions and 613 deletions

View File

@@ -1,7 +1,5 @@
from pina.problem import SpatialProblem
from pina import Condition, Span
from pina.operators import grad
import torch
""" Simple ODE problem. """
# ===================================================== #
# #
@@ -11,16 +9,28 @@ import torch
# y --> field variable #
# x --> spatial variable #
# #
# The equation is: #
# dy(x)/dx + y(x) = x #
# #
# ===================================================== #
from pina.problem import SpatialProblem
from pina import Condition
from pina.geometry import CartesianDomain
from pina.operators import grad
from pina.equation import Equation, FixedValue
import torch
class FirstOrderODE(SpatialProblem):
# variable domain range
x_rng = [0, 5]
x_rng = [0., 5.]
# field variable
output_variables = ['y']
# create domain
spatial_domain = Span({'x': x_rng})
spatial_domain = CartesianDomain({'x': x_rng})
# define the ode
def ode(input_, output_):
@@ -28,11 +38,6 @@ class FirstOrderODE(SpatialProblem):
x = input_
return grad(y, x) + y - x
# define initial conditions
def fixed(input_, output_):
exp_value = 1.
return output_ - exp_value
# define real solution
def solution(self, input_):
x = input_
@@ -40,7 +45,8 @@ class FirstOrderODE(SpatialProblem):
# define problem conditions
conditions = {
'bc': Condition(location=Span({'x': x_rng[0]}), function=fixed),
'dd': Condition(location=Span({'x': x_rng}), function=ode),
'BC': Condition(location=CartesianDomain({'x': x_rng[0]}), equation=FixedValue(1.)),
'D': Condition(location=CartesianDomain({'x': x_rng}), equation=Equation(ode)),
}
truth_solution = solution