cbd_design.mvc 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import models/SimpleClassDiagrams as SCD
  2. include "primitives.alh"
  3. include "object_operations.alh"
  4. SCD CausalBlockDiagrams_Design{
  5. Class Float {
  6. $
  7. if (bool_not(is_physical_float(self))):
  8. return "Natural has no float value"!
  9. else:
  10. return "OK"!
  11. $
  12. }
  13. Class Block{}
  14. Class ConstantBlock{
  15. value : Float {
  16. target_lower_cardinality = 1
  17. target_upper_cardinality = 1
  18. }
  19. }
  20. Class AdditionBlock{}
  21. Class NegatorBlock{
  22. }
  23. Class MultiplyBlock{}
  24. Class InverseBlock{
  25. }
  26. Class DelayBlock{
  27. }
  28. Association Link(Block, Block){}
  29. Association InitialCondition(Block, DelayBlock){
  30. source_lower_cardinality = 1
  31. source_upper_cardinality = 1
  32. }
  33. Inheritance (ConstantBlock, Block){}
  34. Inheritance (AdditionBlock, Block){}
  35. Inheritance (NegatorBlock, Block){}
  36. Inheritance (MultiplyBlock, Block){}
  37. Inheritance (InverseBlock, Block){}
  38. Inheritance (DelayBlock, Block){}
  39. }
  40. export CausalBlockDiagrams_Design to models/CausalBlockDiagrams_Design
  41. CausalBlockDiagrams_Design my_CBD{
  42. ConstantBlock a{
  43. value = 1.0
  44. }
  45. ConstantBlock b{
  46. value = 1.0
  47. }
  48. AdditionBlock c{}
  49. Link(a, c){}
  50. Link(b, c){}
  51. }
  52. export my_CBD to models/my_CBD