* clean `condition` module
* add docs
This commit is contained in:
Nicola Demo
2023-04-18 15:00:26 +02:00
committed by GitHub
parent 736c78fd64
commit 2ca08b5236
18 changed files with 198 additions and 158 deletions

View File

@@ -16,29 +16,29 @@ class TimeDependentProblem(AbstractProblem):
>>> from pina.operators import grad, nabla
>>> from pina import Condition, Span
>>> import torch
>>>
>>> class Wave(TimeDependentSpatialProblem):
>>>
>>> output_variables = ['u']
>>> spatial_domain = Span({'x': [0, 3]})
>>> temporal_domain = Span({'t': [0, 1]})
>>>
>>> def wave_equation(input_, output_):
>>> u_t = grad(output_, input_, components=['u'], d=['t'])
>>> u_tt = grad(u_t, input_, components=['dudt'], d=['t'])
>>> nabla_u = nabla(output_, input_, components=['u'], d=['x'])
>>> return nabla_u - u_tt
>>>
>>> def nil_dirichlet(input_, output_):
>>> value = 0.0
>>> return output_.extract(['u']) - value
>>>
>>> def initial_condition(input_, output_):
>>> u_expected = (-3*torch.sin(2*torch.pi*input_.extract(['x']))
>>> + 5*torch.sin(8/3*torch.pi*input_.extract(['x'])))
>>> u = output_.extract(['u'])
>>> return u - u_expected
>>>
>>> conditions = {
>>> 't0': Condition(Span({'x': [0, 3], 't':0}), initial_condition),
>>> 'gamma1': Condition(Span({'x':0, 't':[0, 1]}), nil_dirichlet),