2016-06-28 3 views
0

마지막 작업의 출력을 기준으로 재료 매개 변수를 교정하는 Python으로 작성된 스크립트가 있습니다. 즉, 오류가 충분히 작을 때까지 Abaqus에서 많은 작업을 연속적으로 실행합니다 .Abaqus에서 연속 작업을 실행할 때 사용자 서브 루틴을 한 번만 컴파일하십시오.

각 작업 전에 컴파일되는 Fortran 서브 루틴을 사용합니다.

문제는 내가 제출 한 각 작업에 대해 사용자 서브 루틴이 컴파일된다는 것입니다. 입력 매개 변수가 마지막 작업과 다르더라도 사용자 서브 루틴은 다시 컴파일 할 필요가 없습니다. 서브 루틴 컴파일은 작업 실행 시간의 약 80 %를 차지합니다.

어떻게하면 사용자 서브 루틴을 한 번만 컴파일하고 연속적으로 실행하도록 지정할 수 있습니까?

다음은 Python으로 작성된 관련 코드 스 니펫입니다. 터미널에

abaqus cae nogui=script.py 

을 입력하여 스크립트를 실행합니다. 이 코드는 Abaqus 스크립팅 인터페이스를 사용합니다.

작업을 만들기 :

mdb.Job(name=self.jobName, model='Model-1', description='', type=ANALYSIS, 
     atTime=None, waitMinutes=0, waitHours=0, queue=None, memory=90, 
     memoryUnits=PERCENTAGE, getMemoryFromAnalysis=True, 
     explicitPrecision=SINGLE, nodalOutputPrecision=SINGLE, echoPrint=OFF, 
     modelPrint=OFF, contactPrint=OFF, historyPrint=OFF, 
     userSubroutine=self.userSubroutinePath, 
     scratch='', resultsFormat=ODB, multiprocessingMode=DEFAULT, numCpus=1, 
     numGPUs=0) 

제출 및 작업 완료 기다립니다

mdb.jobs[self.jobName].submit(consistencyChecking=OFF) 
mdb.jobs[self.jobName].waitForCompletion() 

이 코드는 내가 이전 실행의 데이터를 연속 작업을 실행할 때마다 실행됩니다.

컴파일러 버전 15.0.0.090이

module add abaqus 
module add intel 
module add gcc 
다음

I 를 입력하여 20140723.

+0

룩을 실행할 준비가'ABAQUS make' – agentp

+0

@agentp 네, '도서관 = umat.f 할 ABAQUS'하지만 난 내용의 프롬프트를 얻을 명령을 사용하여 'Missing Required argument : job = '입니다. 매뉴얼에 따르면 'abaqus make {job = OR 라이브러리 = }'을 사용할 수 있기 때문에 논란의 여지가 없습니다.감사합니다 – DjungelJarl

+0

제 생각에 "abaqus"명령은 실제 ​​abaqus 명령에 인수를 전달하기 전에 일부 전처리를 시도하는 스크립트입니다. abaqus 실행 파일의 실제 전체 경로를 확인하고 실행하십시오. – agentp

답변

1

빌드 인텔 64 포트란 컴파일러 XE이다

abaqus make library=usub.f 

를 입력하도록 허용 된 것 서브 루틴을 컴파일하십시오. Windows 플랫폼

+2

이 답변은 시스템에 따라 매우 다릅니다. – agentp

+0

@agentp 예, CentOS 6.7을 실행하는 Gridcore Gompute 클러스터에서이 모든 것을 실행하고 있다고 덧붙일 수 있습니다. – DjungelJarl

0

:

첫째, 명령 "ABAQUS 도서관을"사용 ".DLL"파일을 만듭니다. ABAQUS 디렉토리에서 찾을 수 있습니다.

둘째, 다음 줄을 추가하여 환경 파일 (예 : "abaqus_v6")을 편집

usub_dir_lib = "xxx는"xxx는 여기 (이하 "인 DLL"파일에 완패입니다

의 ABAQUS 디렉토리).

지금, 당신을 위해 파이썬 코드를 수동으로