2차원 응력 분석

1. 시작
오랜만에 만난 그는 2차원 응력 분석을 직접 경영하며 절차를 남겼다.
원본 코드는 Gist에 연결해 열람할 수 있는데 원본 코드를 표시하기보다 프로그램이 있다는 것을 명확하게 표시하기 위해서다. 원본 코드보다 이런 이미지가 출력되어 방문자의 참고가 되었으면 좋겠다.
Fortran과 Pythhon을 혼합하여 사용하면 큰 의미의 구분은 다음과 같은 느낌을 가진다.
  • 유니버설 프로그램은 기본적으로 기능을 바꿀 때만 고친다.
  • 각 모델에 대해 다시 쓴 것은 Pythn.
  • 프로그램 사용에 관심이 있다면 아래 페이지를 보십시오.
    http://kbtkt.web.fc2.com//sub_fem_mesh.html
    http://kbtkt.web.fc2.com//sue_fem_plnt.html
    사용 프로그램은 거의 스스로 제작한 것으로 자동 격자 제작과 2차원 유한원 응력 분석 프로그램은 다음과 같은 교과서를 바탕으로 한다.
    (1) 자동 격자 프로그램
    교과서: FEM의 요소를 이용하여 델로니 삼각분할법, 곡구건남 저서, 2006년 8월 10일 제1판 7인쇄 발행, 삼북출판주식회사
    교과서의 사각형 격자 분할 절차를 세 부분으로 나누어 포란 90으로 개작하다.
    (2) 2차원 유한원법 응력 분석 프로그램
    교과서: 컴퓨터 구조 공학 강좌 유한 요소법 구조 해석 프로그램, 삼본 무프 길촌 신민 공동 저서, 소화 54년 5월 10일 초판 제9인쇄 발행, 주식회사 배풍관
    교과서의 2차원 탄력성 문제에 대한 프로그램(삼각 1차 요소)은 삼각형의 1차 요소와 사각형 동위원소 파라미터의 1차 요소로 개작되었다. 양자의 혼합 모델은 불가능하다. 또한 1차 방정식을 연립하는 것은 행렬을 띠는 이 스키법으로 해결한다.
    2. 프로그램 사용
    사용 절차는 다음과 같습니다.
    (1) 모델 디스플레이
    py_gmt_shape.py
    : GMT를 통해 모델 구조의 형태를 제작, 표시합니다.
    하는 일,
  • 파일 출력 GMT를 읽어들이는 데 사용되는 좌표
  • 파일 출력을 그림으로 만드는 GMT 명령
  • bash를 통해 GMT 명령을 실행하고 eps 이미지 출력
  • 보고서를 작성합니다. 입력 데이터는 자동 격자 작용의 입력 데이터입니다. 프로그램으로서의 통용성은 아니지만 같은 목적의 이미지 출력이기 때문에 모델이 바뀔 때마다 고쳐 쓰면서 사용하는 프로그램입니다.
    py_gmt_model.py
    : 메쉬 맵에서 하중 및 경계 조건을 기록하는 출력 이미지를 만듭니다.
    하는 일,
  • FEM 분석용 입력 데이터 읽기
  • 격자도 또는 경계 조건·부하 출력을 제작/출력하는 데이터
  • 파일 출력을 그림으로 만드는 GMT 명령
  • bash를 통해 GMT 명령을 실행하고 eps 이미지 출력
  • (2) 자동 격자 제작
    자동 격자에 대한 원본 데이터를 만들려면 Excel 또는 텍스트 편집기에서 미리 생성합니다.
    f90_fem_mesh4a.f90
    : 삼각형 요소 생성
    f90_fem_mesh4b.f90
    : 사각형 요소 생성
    f90_fem_mesh4c.f90
    사각형 요소 성형
    f90_num_mesh.f90
    : 노드 번호 최적화. 출력된 격자 데이터를 이 스키에 사용하고 대역폭을 줄이기 위해 노드 번호를 바꿉니다.
    f90_gmt_mesh.f90
    : GMT를 통해 요소 맵을 출력합니다. 아래 스크립트에서 GMT, figgmt_mesh.eps라는 이미지 파일을 만들고 요소의 분할 상황을 확인합니다.
    상기 프로그램은 아래 스크립트에 따라 실행됩니다.
    gfortran -o f90_fem_mesh4a f90_fem_mesh4a.f90
    gfortran -o f90_fem_mesh4b f90_fem_mesh4b.f90
    gfortran -o f90_fem_mesh4c f90_fem_mesh4c.f90
    gfortran -o f90_gmt_mesh f90_gmt_mesh.f90
    gfortran -o f90_num_mesh f90_num_mesh.f90
    
    range=-6/6/175/185
    scale=12/10
    gmt set FONT_ANNOT_PRIMARY 10
    gmt set MAP_ANNOT_OFFSET_PRIMARY 0.3c
    gmt set FONT_LABEL 10p
    gmt set MAP_LABEL_OFFSET 0.1c
    gmt set MAP_TICK_LENGTH_PRIMARY -0.2c
    
    inp=mesh_arch4.csv
    ./f90_fem_mesh4a $inp out_work_A.txt
    ./f90_fem_mesh4b out_work_A.txt out_work_B.txt
    ./f90_fem_mesh4c out_work_B.txt out_work_C.txt
    ./f90_num_mesh 4 out_work_C.txt out_mesh.txt
    ./f90_gmt_mesh 4 out_mesh.txt _inp_gmt.txt
    
    inp=_inp_gmt.txt
    fig=fig_gmt_mesh.eps
    gmt psxy $inp -R$range -JX$scale -W0.5,black -G255/255/191 -P > $fig
    
    py_model_dat.py
    : 격자 데이터(상기 성과 텍스트 파일out mesh.txt)에 요소의 물성, 경계 조건, 부하 조건을 첨가하여 해석용 입력 데이터를 제작한다.
    프로그램은 통용성이 없지만 모델이 바뀔 때마다 고치면서 사용하는 프로그램이다.
    (3) 응력 분석과 결과 표시
    f90_fem_plnt.f90
    : FEM 응력 분석 프로그램
    py_fem_cont.py
    : 첫 번째 주응력, 두 번째 응력, 최대 절단 응력의 조절기 도면. 조절기라고 해도 연속적으로 표시되는 것이 아니라 응력치에 따라 요소에 착색된 것이다. 디자인에 있어서 이것을 사용하는 것이 더욱 편리하다.
    py_fem_vect.py
    : 주응력 벡터맵・위치 모드맵 제작.
    상기 프로그램은 아래 스크립트에 따라 실행됩니다. 계산을 실행하고 결과를 읽고 pg 이미지를 출력합니다.
    gfortran -o f90_fem_plnt f90_fem_plnt.f90
    
    ./f90_fem_plnt inp_arch1.csv out_arch1.csv
    
    python3 py_fem_cont.py out_arch1.csv
    python3 py_fem_vect.py out_arch1.csv
    
    GMT도 이 응력 변환기를 표시하는 프로그램을 시도했지만,
    '응력치에 따라 임의의 모양의 사각형 요소를 채우는 작업'은 충전치에 따라 파일을 만들어야 하는 등 GMT에서는 까다롭기 때문에 파이톤이 기억해 배열한 좌표로 둘러싸인 영역(망상물)을 응력치에 따라 채우는 방법을 채택했다.
    또한 GMT에서는 모델 영역을 작은 직사각형으로 분할해 점별 응력값을 내삽해 계산해 변환기를 만드는 방법은 이 예에서 사용되지 않았으나 잘 진행됐다.
    3. 성과도

    좋은 웹페이지 즐겨찾기