/[ascend]/trunk/models/johnpye/vector.a4c
ViewVC logotype

Contents of /trunk/models/johnpye/vector.a4c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 857 - (show annotations) (download) (as text)
Mon Sep 25 08:49:10 2006 UTC (18 years, 3 months ago) by johnpye
File MIME type: text/x-ascend
File size: 1442 byte(s)
Added 'pile.a4c', a model for laterally loaded piles (in progress)
1 REQUIRE "atoms.a4l";
2
3 MODEL vector;
4 x,y,z IS_A solver_var;
5 END vector;
6
7 MODEL spherical_coords;
8 mod IS_A solver_var;
9 theta,phi IS_A angle;
10 END spherical_coords;
11
12 MODEL vector_from_spherical(
13 S WILL_BE spherical_coords;
14 ) REFINES vector;
15 x = S.mod*sin(S.phi)*cos(S.theta);
16 y = S.mod*sin(S.phi)*sin(S.theta);
17 z = S.mod*cos(S.theta);
18 END vector_from_spherical;
19
20
21 MODEL unit_vector REFINES vector;
22 x^2 + y^2 + z^2 = 1;
23 END unit_vector;
24
25 (* = B X C *)
26 MODEL cross_product(
27 B WILL_BE vector;
28 C WILL_BE vector;
29 ) REFINES vector;
30 x = B.y*C.z + B.z*C.y;
31 y = B.z*C.x + B.x*C.z;
32 z = B.x*C.y + B.y*C.x;
33 END cross_product;
34
35 (* = B . C *)
36 MODEL dot_product(
37 B WILL_BE vector;
38 C WILL_BE vector;
39 );
40 mod IS_A solver_var;
41 mod = B.x*C.x + B.y*C.y + B.z*C.z;
42 END dot_product;
43
44 (* = b A *)
45 MODEL scaled_vector(
46 b WILL_BE factor;
47 A WILL_BE vector;
48 ) REFINES vector;
49 x = b*A.x;
50 y = b*A.y;
51 z = b*A.z;
52 END scaled_vector;
53
54 MODEL scaled_cross_product(
55 a WILL_BE solver_var;
56 B WILL_BE vector;
57 C WILL_BE vector;
58 ) REFINES vector;
59 A IS_A cross_product(B,C);
60 x = a*A.x;
61 y = a*A.y;
62 z = z*A.z;
63 END scaled_cross_product;
64
65 (*
66 MODEL vector1;
67 A IS_A unit_vector;
68 B IS_A vector;
69
70 C IS_A cross_product(A,B);
71 METHODS
72 METHOD on_load;
73 FIX A.x; A.x := 1;
74 FIX A.y; A.y := 0;
75
76 FIX B.x; B.x := 0;
77 FIX B.y; B.y := 1;
78 FIX B.z; B.z := 0;
79 END on_load;
80
81 END vector1;
82 *)

john.pye@anu.edu.au
ViewVC Help
Powered by ViewVC 1.1.22