lab3 presentation grup b2

26
LAB3: FIELD PLOTTING-FINITE DIFFERENCES(ITERATION METHOD) PRESENTATION BY: BOSA T. NTSHOLE GROUP MEMBERS: ONTSE MOFENYI TAPOLOGO RAMASESANE KEONE OALOTSE

Upload: bosa-theophilus-ntshole

Post on 24-Jan-2017

41 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LAB3 PRESENTATION GRUP B2

LAB3: FIELD PLOTTING-FINITE DIFFERENCES(ITERATION METHOD)

PRESENTATION BY: BOSA T. NTSHOLEGROUP MEMBERS:ONTSE MOFENYI

TAPOLOGO RAMASESANEKEONE OALOTSE

Page 2: LAB3 PRESENTATION GRUP B2

WHAT WAS THE LAB ABOUT?

• To use a numerical method (finite-differences) to plot a field for a given configuration of conductor boundaries with the aid of a digital computer(C++ SOFTWARE) which was used to calculate potentials at specified lattice points in a field.

• Our mandate was to perform Q9 and Q11 on Engineering Electromagnetics 6th Edition - William H. Hayt, John A. Buck._chapter 6.

Page 3: LAB3 PRESENTATION GRUP B2

HOW THE LAB WAS CARRIED OUT

• A C++ program was generated such that the outcomes are as expected.

• For question 9, a corresponding C++ program was used to set the matrix of 9 by 9 triangular trough lattice points.

• On question 11, also a corresponding C++ program was made such that an irregular lattice points were generated having matrix of 6 by 11.

Page 4: LAB3 PRESENTATION GRUP B2

EQUATION USED TO FIND POTENTIAL AT REQUIRED LATTICE POIN

Page 5: LAB3 PRESENTATION GRUP B2

EQUATION USED TO FIND POTENTIAL AT REQUIRED LATTICE POINT

• This equation gives the potential required at a specified location as

V0 =

Page 6: LAB3 PRESENTATION GRUP B2

PREFFERENCE

• Using a digital computer to find the potential at specified lattice point is more accurate than using the equation on the previous slide.

• This is so because accuracy can be set on the program source code.

Page 7: LAB3 PRESENTATION GRUP B2

EXPECTED RESULTS

Page 8: LAB3 PRESENTATION GRUP B2

RESULTS FOR Q11A

Page 9: LAB3 PRESENTATION GRUP B2

DISCUSSION OF RESULTS OBTAINED

• Gap voltages ( pair of 30V) were obtained by averaging the sum of top plate voltage(0V) and the slanting plate voltage(60V).

• We can observe symmetry along column 5 of our lattice points.

• Also the V-shaped dent was acquired. This was done by removing unwanted zeroes to perfectly identify our plate boundaries.

Page 10: LAB3 PRESENTATION GRUP B2

DISCUSSION OF RESULTS OBTAINED

• The unwanted zeroes were removed by setting our source code to skip/ignore the specified points on the matrix.

• This was achieved using an if statement.

Page 11: LAB3 PRESENTATION GRUP B2

C++ PROGRAMS USED FOR THE LAB

•APPENDIX 1•

•#include <stdio.h>

•#include <math.h>

•#include<iostream>

•#define MSIZER 9

•#define MSIZEC 9

•float a[MSIZER][MSIZEC],

•b[MSIZER][MSIZEC],

•c;

•int i, j;

•void print(void);

•int main(void)

•{

• for (i = 0; i<MSIZER; ++i) {

• for (j = 0; j<MSIZEC; ++j) {

Page 12: LAB3 PRESENTATION GRUP B2

C++ PROGRAMS USED FOR THE LAB• a[i][j] = 0.;

• }

• }

• for (i = 0; i<MSIZER; ++i) {

• for (j = 0; j<MSIZEC; ++j) {

• a[0][0] = 50;

• a[1][1] = 100;

• a[2][2] = 100;

• a[3][3] = 100;

• a[4][4] = 100;

• a[5][5] = 100;

• a[6][6] = 100;

• a[7][7] = 100;

• a[8][8] = 50;

• }

Page 13: LAB3 PRESENTATION GRUP B2

C++ PROGRAMS USED FOR THE LAB• }

•again:

• //print(); getchar();

• for (i = 2; i<MSIZER - 1; ++i) { // row

• for (j = 1; j<2; ++j) { // column

• a[i][j] = (a[i][j - 1] + a[i - 1][j] + a[i][j + 1] + a[i + 1][j]) / 4.;

• }

• }

• for (i = 3; i<MSIZER - 1; ++i) { // row

• for (j = 1; j<3; ++j) { // column

• a[i][j] = (a[i][j - 1] + a[i - 1][j] + a[i][j + 1] + a[i + 1][j]) / 4.;

• }

• }

• for (i = 4; i<MSIZER - 1; ++i) { // row

Page 14: LAB3 PRESENTATION GRUP B2

C++ PROGRAMS USED FOR THE LAB• for (j = 1; j<4; ++j) { // column

• a[i][j] = (a[i][j - 1] + a[i - 1][j] + a[i][j + 1] + a[i + 1][j]) / 4.;

• }

• }

• for (i = 5; i<MSIZER - 1; ++i) { // row

• for (j = 1; j<5; ++j) { // column

• a[i][j] = (a[i][j - 1] + a[i - 1][j] + a[i][j + 1] + a[i + 1][j]) / 4.;

• }

• }

• for (i = 6; i<MSIZER - 1; ++i) { // row

• for (j = 1; j<6; ++j) { // column

• a[i][j] = (a[i][j - 1] + a[i - 1][j] + a[i][j + 1] + a[i + 1][j]) / 4.;

• }

• }

• for (i = 7; i<MSIZER - 1; ++i) { // row

• for (j = 1; j<7; ++j) { // column

• a[i][j] = (a[i][j - 1] + a[i - 1][j] + a[i][j + 1] + a[i + 1][j]) / 4.;

• }

Page 15: LAB3 PRESENTATION GRUP B2

C++ PROGRAMS USED FOR THE LAB• }

• // determine residual for stop condition

• for (i = 2; i<MSIZER - 1; ++i) { // row

• for (j = 1; j<2; ++j) { // column

• c = (a[i][j - 1] + a[i - 1][j] + a[i][j + 1] + a[i + 1][j]) / 4.;

• b[i][j] = a[i][j] - c; // previous potential - new one

• if ((fabs(b[i][j]) - 0.00001)>.0) goto again; // stop diff < 0.00001

• }

• }

• for (i = 3; i<MSIZER - 1; ++i) { // row

• for (j = 1; j<3; ++j) { // column

• c = (a[i][j - 1] + a[i - 1][j] + a[i][j + 1] + a[i + 1][j]) / 4.;

• b[i][j] = a[i][j] - c; // previous potential - new one

• if ((fabs(b[i][j]) - 0.00001)>.0) goto again; // stop diff < 0.00001

• }

• }

Page 16: LAB3 PRESENTATION GRUP B2

C++ PROGRAMS USED FOR THE LAB•

• for (i = 4; i<MSIZER - 1; ++i) { // row

• for (j = 1; j<4; ++j) { // column

• c = (a[i][j - 1] + a[i - 1][j] + a[i][j + 1] + a[i + 1][j]) / 4.;

• b[i][j] = a[i][j] - c; // previous potential - new one

• if ((fabs(b[i][j]) - 0.00001)>.0) goto again; // stop diff < 0.00001

• }

• }

• for (i = 5; i<MSIZER - 1; ++i) { // row

• for (j = 1; j<5; ++j) { // column

• c = (a[i][j - 1] + a[i - 1][j] + a[i][j + 1] + a[i + 1][j]) / 4.;

• b[i][j] = a[i][j] - c; // previous potential - new one

• }

• }

• for (i = 6; i<MSIZER - 1; ++i) { // row

• for (j = 1; j<6; ++j) { // column

• c = (a[i][j - 1] + a[i - 1][j] + a[i][j + 1] + a[i + 1][j]) / 4.;

• b[i][j] = a[i][j] - c; // previous potential - new one

Page 17: LAB3 PRESENTATION GRUP B2

C++ PROGRAMS USED FOR THE LAB• }

• }

• for (i = 7; i<MSIZER - 1; ++i) { // row

• for (j = 1; j<7; ++j) { // column

• c = (a[i][j - 1] + a[i - 1][j] + a[i][j + 1] + a[i + 1][j]) / 4.;

• b[i][j] = a[i][j] - c; // previous potential - new one

• }

• }

• print(); getchar();

•}

•void print(void) {

• for (i = 0; i < MSIZER; ++i)

• { // row

• for (j = 0; j < MSIZEC; ++j) { // column

• if ((i == 0)&(j == 1) || (i == 0)&(j == 2) || (i == 0)&(j == 3) || (i == 0)&(j == 4) || (i == 0)&(j == 5) || (i == 0)&(j == 6) || (i == 0)&(j == 7) || (i == 0)&(j == 8) ||

Page 18: LAB3 PRESENTATION GRUP B2

C++ PROGRAMS USED FOR THE LAB• (i == 1)&(j == 2) || (i == 1)&(j == 3) || (i == 1)&(j == 4) || (i == 1)&(j == 5) || (i == 1)&(j == 6) || (i == 1)&(j == 7) || (i == 1)&(j == 8) ||

• (i == 2)&(j == 3) || (i == 2)&(j == 4) || (i == 2)&(j == 5) || (i == 2)&(j == 6) || (i == 2)&(j == 7) || (i == 2)&(j == 8) ||

• (i == 3)&(j == 4) || (i == 3)&(j == 5) || (i == 3)&(j == 6) || (i == 3)&(j == 7) || (i == 3)&(j == 8)||

• (i == 4)&(j == 5) || (i == 4)&(j == 6) || (i == 4)&(j == 7) || (i == 4)&(j == 8)||

• (i == 5)&(j == 6) || (i == 5)&(j == 7) || (i == 5)&(j == 8)||

• (i == 6)&(j == 7) || (i == 6)&(j == 8)||

• (i == 7)&(j == 8)){

• printf(" ");

• continue;

• }

• printf(" %5.1f", a[i][j]);

• }

• printf("\n\n");

• }

•}

Page 19: LAB3 PRESENTATION GRUP B2

C++ PROGRAMS USED FOR THE LAB

•APPENDIX 2•

•#include <stdio.h>

•#include <math.h>

•#include<iostream>

•#define MSIZER 6

•#define MSIZEC 11

•float a[MSIZER][MSIZEC],

•b[MSIZER][MSIZEC],

•c;

•int i, j;

•void print(void);

•int main(void)

•{

• for (i = 0; i < MSIZER; ++i) {

Page 20: LAB3 PRESENTATION GRUP B2

C++ PROGRAMS USED FOR THE LAB• for (j = 0; j < MSIZEC; ++j) {

• a[i][j] = 0.;

• }

• }

• for (j = 0; j < 3; ++j){

• a[0][j] = 0.;

• }

• for (j = 8; j>7; ++j){

• a[0][j] = 0.;

• }

• for (j = 0; j < MSIZEC; ++j){

• a[5][j] = 0.;

• }

• for (j = 0; j < MSIZEC; ++j){

• a[5][j] = 0.;

• }

• for (j = 0; i < MSIZER; ++i) {

Page 21: LAB3 PRESENTATION GRUP B2

C++ PROGRAMS USED FOR THE LAB• for (j = 0; j < MSIZEC; ++j) {

• a[0][3] = 30.;

• a[0][7] = 30.;

• a[1][4] = 60.;

• a[2][5] = 60.;

• a[1][6] = 60.;

• }

• }

•again:

• //print(); getchar();

• for (i = 1; i<MSIZER - 1; ++i) { // row

• for (j = 1; j < 4; ++j)

• { // column

• a[i][j] = (a[i][j - 1] + a[i - 1][j] + a[i][j + 1] + a[i + 1][j]) / 4.;

Page 22: LAB3 PRESENTATION GRUP B2

C++ PROGRAMS USED FOR THE LAB• }

• for (i = 1; i < MSIZER - 1; ++i)

• for (j = 7; j < 10; ++j){

• a[i][j] = (a[i][j - 1] + a[i - 1][j] + a[i][j + 1] + a[i + 1][j]) / 4.;

• }

• }

• for (i = 2; i<MSIZER - 1; ++i) { // row

• for (j = 1; j<5; ++j) { // column

• a[i][j] = (a[i][j - 1] + a[i - 1][j] + a[i][j + 1] + a[i + 1][j]) / 4.;

• }

• for (i = 2; i < MSIZER - 1; ++i)

• for (j = 6; j < 10; ++j){

• a[i][j] = (a[i][j - 1] + a[i - 1][j] + a[i][j + 1] + a[i + 1][j]) / 4.;

• }

• }

• for (i = 3; i<MSIZER - 1; ++i) { // row

Page 23: LAB3 PRESENTATION GRUP B2

C++ PROGRAMS USED FOR THE LAB• for (j = 1; j<10; ++j) { // column

• a[i][j] = (a[i][j - 1] + a[i - 1][j] + a[i][j + 1] + a[i + 1][j]) / 4.;

• }

• }

• for (i = 4; i<MSIZER - 1; ++i) { // row

• for (j = 1; j<10; ++j) { // column

• a[i][j] = (a[i][j - 1] + a[i - 1][j] + a[i][j + 1] + a[i + 1][j]) / 4.;

• }

• }

• // determine residual for stop condition

• for (i = 0; i<MSIZER - 1; ++i) { // row

• for (j = 1; j<0; ++j) { // column

• c = (a[i][j - 1] + a[i - 1][j] + a[i][j + 1] + a[i + 1][j]) / 4.;

• b[i][j] = a[i][j] - c; // previous potential - new one

• if ((fabs(b[i][j]) - 0.00001)>.0) goto again; // stop diff < 0.00001

Page 24: LAB3 PRESENTATION GRUP B2

C++ PROGRAMS USED FOR THE LAB• }

• }

• for (i = 1; i<MSIZER - 1; ++i) { // row

• for (j = 1; j<1; ++j) { // column

• c = (a[i][j - 1] + a[i - 1][j] + a[i][j + 1] + a[i + 1][j]) / 4.;

• b[i][j] = a[i][j] - c; // previous potential - new one

• if ((fabs(b[i][j]) - 0.00001)>.0) goto again; // stop diff < 0.00001

• }

• }

• for (i = 2; i<MSIZER - 1; ++i) { // row

• for (j = 1; j<2; ++j) { // column

• c = (a[i][j - 1] + a[i - 1][j] + a[i][j + 1] + a[i + 1][j]) / 4.;

• b[i][j] = a[i][j] - c; // previous potential - new one

• if ((fabs(b[i][j]) - 0.00001)>.0) goto again; // stop diff < 0.00001

• }

• }

• for (i = 3; i<MSIZER - 1; ++i) { // row

Page 25: LAB3 PRESENTATION GRUP B2

C++ PROGRAMS USED FOR THE LAB• for (j = 1; j<3; ++j) { // column

• c = (a[i][j - 1] + a[i - 1][j] + a[i][j + 1] + a[i + 1][j]) / 4.;

• b[i][j] = a[i][j] - c; // previous potential - new one

• }

• }

• for (i = 4; i<MSIZER - 1; ++i) { // row

• for (j = 1; j<4; ++j) { // column

• c = (a[i][j - 1] + a[i - 1][j] + a[i][j + 1] + a[i + 1][j]) / 4.;

• b[i][j] = a[i][j] - c; // previous potential - new one

• }

• }

• for (i = 5; i<MSIZER - 1; ++i) { // row

• for (j = 1; j<5; ++j) { // column

• c = (a[i][j - 1] + a[i - 1][j] + a[i][j + 1] + a[i + 1][j]) / 4.;

• b[i][j] = a[i][j] - c; // previous potential - new one

• }

• }

Page 26: LAB3 PRESENTATION GRUP B2

C++ PROGRAMS USED FOR THE LAB• print(); getchar();

•}

•void print(void) {

• for (i = 0; i < MSIZER; ++i)

• { // row

• for (j = 0; j < MSIZEC; ++j) { // column

• if ((i == 0)&(j == 4) || (i == 0)&(j == 5) || (i == 0)&(j == 6) || (i == 1)&(j == 5)){

• printf(" ");

• continue;

• }

• printf(" %5.1f", a[i][j]);

• }

• printf("\n\n");

• }

•}