Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<cmath>
- #include<iostream>
- #include<cstdlib>
- using namespace std;
- struct point{
- double a;
- double b;
- double c;
- };
- float mag(point v);
- double random_num(double a,double b);
- point b_field_at_point(point p);
- point unit(point v);
- int main(){
- srand(332);
- double i;
- double j;
- double k;
- int boxsize=6;
- for(k=-boxsize;k<boxsize;k=k+1){
- for(i=-boxsize;i<boxsize;i=i+1){
- for(j=-boxsize;j<boxsize;j=j+1){
- point temp;
- point return_temp;
- temp.a=i;temp.b=j;temp.c=k;
- cout<<i<<" "<<j<<" "<<k<<" ";
- return_temp=b_field_at_point(temp);
- //cout<<sqrt(return_temp.a*return_temp.a+return_temp.b*return_temp.b+return_temp.c*return_temp.c)<<" ";
- if(mag(return_temp) <=1000){
- cout<<return_temp.a<<" "<<return_temp.b<<" "<<return_temp.c<<endl;
- }else{
- cout<<0<<" "<<0<<endl;};
- };
- };}
- return 0;}
- double random_num(double a,double b){
- return (rand()/(double)RAND_MAX)*(b-a)+a;}
- point b_field_at_point(point p){
- double radius=8;
- point I;
- I.a=I.b=I.c=0;
- double theta=0;
- double constants=0;
- //in amps
- double current=10000000;
- double i;
- double iterations=50000;
- for(i=0;i<iterations;i++){
- theta=random_num(0,2*3.14159265359);
- point dis_vect;
- point dl;
- dis_vect.a=p.a/*+(int)(random_num(-5,5))*/;
- dis_vect.b=p.b-radius*cos(theta);
- dis_vect.c=p.c-radius*sin(theta);
- constants=(4*3.14159265359*pow(10,-7)*current/(4*3.14159265359))*(1/(pow(mag(dis_vect),3)));
- //this is the cross product
- I.a=I.a+constants*(radius*sin(theta)*(p.c-radius*sin(theta))+radius*cos(theta)*(p.b-radius*cos(theta)));
- I.b=I.b+constants*(radius*p.a*cos(theta));
- I.c=I.c+constants*(-radius*p.a*sin(theta));
- }
- I.a=(2*3.141)*I.a/iterations;
- I.b=(2*3.141)*I.b/iterations;
- I.c=(2*3.141)*I.c/iterations;
- return I;
- }
- point unit(point v){
- point temp;
- double mag=sqrt(v.a*v.a+v.b*v.b+v.c*v.c);
- temp.a=v.a/mag;
- temp.b=v.b/mag;
- temp.c=v.c/mag;
- return temp;}
- float mag(point v){
- return sqrt(v.a*v.a+v.b*v.b+v.c*v.c);}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement