카테고리 없음

이온 반지름비를 이용하여 결정구조 예측

송규 2023. 3. 25. 23:10

3월 융과탐 주제로 뭘 할까 고민을 해봤는데 화학 수업시간에 배운 양이온과 음이온의 반지름비를 통해 이온 결정구조를 예측할 수 있다는 내용으로 코딩을 해봤습니다.

 

이온 결정이 어떤 구조를 이루는지는 양이온과 음이온의 반지름비에 따라 달라집니다.

 

출처: WILEY Chapter 4: The Structure of Crystalline Solids

위 사진은 음이온 반지름 / 양이온 반지름 의 값에 따라 특정한 결정구조를 가진다는 것을 알려주는 표입니다.

 

특정한 결정구조에서 음이온 반지름과 양이온 반지름 비의 정도가 정해져 있다는 것이 바로 이해가 되지 않을수도 있을거 같아서 제가 정삼각형 구조와 정육면체 구조일때를 직접 구해봤습니다. ^ O ^

배위수가 3인 triangle 구조에서 반지름비 계산

정삼각형 구조를 가질때는 다음과 같이 계산할 수 있습니다. 이 계산에서는 딱히 이해하기 힘든 부분은 없으니 넘어가겠습니다. 

 

배위수가 4인 tetrahedral구조에서 반지름비 계산

정사면체 구조는 정육면체에서 4개의 점에 음이온이 존재한다고 하고 계산했습니다. 또한 계산을 위해 정육면체상에 A, B, C, D점을 잡고 정육면체 한변의 길이를 α라 놓았습니다.

이제 면ABCD에서 BC가 루트 2α인 이유는 정육면체에서 대각선의 길이이기 때문이고 이를 통해 삼각형 BDC에서 BD의 길이가 루트 3α이라는 것을 알수 있습니다. 그리고 BD와 BC를 r-, r+로 나타낸 뒤 계산하였습니다.

 

배위수가 6인 octahedron구조에서 반지름비 계산

이 계산에서는 정육면체의 한변의 길이가 2r-이니 정육면체의 밑면의 대각선의 길이가 2루트2 r-라는 것 말고는 어려운 것은 없는거 같습니다.

 

위에서 3개의 구조에 대해 반지름비를 계산해봤구요 이제 이온 반지름비를 이용하여 결정구조에 예측에 대한 저의 코드를 보여드리겠습니다.  

 

#include <stdio.h>

int main()
{
    double cationr, anionr, ratio;  // 양이온= cation, 음이온= anion
    printf("양이온 반지름을 입력하세요: "); // 양이온 반지름을 입력받는다.
    scanf("%lf", &cationr);
    printf("음이온 반지름을 입력하세요: "); // 음이온 반지름을 입력받는다.
    scanf("%lf", &anionr);

    double p = cationr / anionr; //p는 이온반지름 비

    if(p<0.1547){ 
    printf("CN(배위수)는 2가 안정적이고 linear구조를 가집니다.\n"); // p가 0.154 이하이면 다음의 문장을 출력
 	}
    else if (p >=0.1547 && p<0.2247) {
        printf("CN(배위수)는 3이 안정적이고 triangle 구조를 가집니다.\n"); // p가 0.2247 이하이면 다음의 문장을 출력
    } 
	else if(p>=0.2247 && p<0.4142){
        printf("CN(배위수)는 4가 안정적이고 tetrahedral(정사면체)구조를 가집니다.\n"); // p가 0.4142 이하이면 다음의 문장을 출력
    }
    else if(p>=0.4142 && p<0.732){
    	printf("CN(배위수)는 6이 안정적이고 octahedral(팔면체)구조를 가집니다. \n"); // p가 0.732 이하이면 다음의 문장을 출력
	}
	else if(p>=0.732 && p<1.0){
		printf("CN(배위수)는 8이 안정적이고 cubic 구조를 가집니다.\n"); // p가 1 이하이면 다음의 문장을 출력
	}
	else
	{
		printf("입방구조를 가지지 않습니다.\n");
	}
    return 0;

}

코드는 C언어로 작성하였고 음이온, 양이온 반지름을 입력받고 음이온 / 양이온을 p라고 놓은뒤 p의 값에 따라 입방구조와 배위수를 알려주는 코드입니다. 

 

이건 코드에 대한 순서도입니다.

 

 

이상으로 3월 정융탐 과제를 끝내겠습니다!! 

 

(+ 4월 과제로는 직접 입방구조를 그려주는 코드를 짜볼 계획입니다. )