11"""
2- Subclassing BaseObj - Simple Pendulum
2+ Subclassing ObjBase - Simple Pendulum
33=====================================
4- This example shows how to subclass :class:`easyscience.Objects.Base.BaseObj ` with parameters from
5- :class:`EasyScience.Objects.Base .Parameter`. For this example a simple pendulum will be modeled.
4+ This example shows how to subclass :class:`easyscience.base_classes.ObjBase ` with parameters from
5+ :class:`EasyScience.variable .Parameter`. For this example a simple pendulum will be modeled.
66
77.. math::
88 y = A \sin (2 \pi f t + \phi )
1717import matplotlib .pyplot as plt
1818import numpy as np
1919
20- from easyscience .Objects . ObjectClasses import BaseObj
21- from easyscience .Objects . ObjectClasses import Parameter
20+ from easyscience .base_classes import ObjBase
21+ from easyscience .variable import Parameter
2222
2323# %%
2424# Subclassing
2929# embedded rST text block:
3030
3131
32- class Pendulum (BaseObj ):
32+ class Pendulum (ObjBase ):
3333 def __init__ (self , A : Parameter , f : Parameter , p : Parameter ):
3434 super (Pendulum , self ).__init__ ('SimplePendulum' , A = A , f = f , p = p )
3535
@@ -41,13 +41,13 @@ def from_pars(cls, A: float = 1, f: float = 1, p: float = 0):
4141 return cls (A , f , p )
4242
4343 def __call__ (self , t ):
44- return self .A .raw_value * np .sin (2 * np .pi * self .f .raw_value * t + self .p .raw_value )
44+ return self .A .value * np .sin (2 * np .pi * self .f .value * t + self .p .value )
4545
4646 def plot (self , time , axis = None , ** kwargs ):
4747 if axis is None :
4848 axis = plt
4949 else :
50- axis .set_title (f'A={ self .A .raw_value } , F={ self .f .raw_value } , P={ self .p .raw_value } ' )
50+ axis .set_title (f'A={ self .A .value } , F={ self .f .value } , P={ self .p .value } ' )
5151 p = axis .plot (time , self (time ), ** kwargs )
5252 return p
5353
0 commit comments