subrepo: subdir: "calculix" merged: "09c74d4" upstream: origin: "https://aur.archlinux.org/calculix" branch: "master" commit: "09c74d4" git-subrepo: version: "0.4.1" origin: "???" commit: "???"
		
			
				
	
	
		
			162 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			162 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
# Maintainer: Maurizio D'Addona <mauritiusdadd@gmail.com>
 | 
						|
# Contributor: Sven Niese <Fd3querm@yahoo.de>
 | 
						|
# Contributor: Daniel Murphy <mosquitogang201@gmail.com>
 | 
						|
 | 
						|
# NOTE: the option "!makeflag" is needed because the compilation
 | 
						|
#       may fail if make uses more than one job.
 | 
						|
 | 
						|
pkgname=calculix
 | 
						|
pkgver=2.17
 | 
						|
pkgrel=3
 | 
						|
pkgdesc="CalculiX: 3D finite element solver and post-processor (executables)"
 | 
						|
arch=('i686' 'x86_64')
 | 
						|
options=(!makeflags !buildflags)
 | 
						|
url="http://www.calculix.de/"
 | 
						|
license=('GPL2')
 | 
						|
depends=('arpack' 'spooles' 'libsnl-svn' 'blas' 'mesa' 'glu' 'libxmu' 'libxi')
 | 
						|
optdepends=('calculix-doc: documentation and examples')
 | 
						|
makedepends=('gcc-fortran' 'perl')
 | 
						|
checkdepends=('perl')
 | 
						|
 | 
						|
source=("http://www.dhondt.de/ccx_${pkgver}.src.tar.bz2"
 | 
						|
        "http://www.dhondt.de/ccx_${pkgver}.test.tar.bz2"
 | 
						|
        "http://www.dhondt.de/ccx_${pkgver}.fluidtest.tar.bz2"
 | 
						|
        "http://www.dhondt.de/ccx_${pkgver}.fluidtestfem.tar.bz2"
 | 
						|
        "http://www.dhondt.de/ccx_${pkgver}.structest.tar.bz2"
 | 
						|
      	"http://www.dhondt.de/cgx_${pkgver}.all.tar.bz2"
 | 
						|
        "calculix_${pkgver}_archlinux.patch")
 | 
						|
 | 
						|
sha256sums=('ca708ad4aa729d9f84a9faba343c1bcc0b7cc84ed372616ebb55c8e6fa8f6e50'
 | 
						|
            '798f94e536197bb10a74bae096f2a29a5111239020e7d10f93e1ad3d90c370cf'
 | 
						|
            '5126de5f8543cb4f4c3355612d4df41541b278c3e505e7f2191fd90190eac4f7'
 | 
						|
            'dab62ed58b1e5c1035360b59942593bf952af151fb9c9d32701cc028ee1683e3'
 | 
						|
            'e7cd0e71a9764955bf5096c849e8bb818d35040e8c4909b2168ce4d29b41d8be'
 | 
						|
            '01b32864714d7ed7c760567e3a04077f3e41fe171d1804b305c96c344b0e4d2e'
 | 
						|
            'd6bbe96457d6a773958a9eb5a783ae630c8c2ea38ebaa0c6a799f3384e85d84f')
 | 
						|
 | 
						|
prepare()
 | 
						|
{
 | 
						|
    cd "${srcdir}"
 | 
						|
 | 
						|
    msg "Patching makefiles..."
 | 
						|
    rm -rf CalculiX/libSNL
 | 
						|
    patch -p0 -f -l -s -i calculix_${pkgver}_archlinux.patch
 | 
						|
    msg2 "Done"
 | 
						|
}
 | 
						|
 | 
						|
build()
 | 
						|
{   
 | 
						|
    msg "Building..."
 | 
						|
    
 | 
						|
    msg2 "Building solver..."
 | 
						|
    cd "${srcdir}/CalculiX/ccx_${pkgver}/src"
 | 
						|
    make CFLAGS="${CFLAGS} -Wall -O2 -fopenmp -I /usr/include/spooles -DARCH=\"Linux\" -DSPOOLES -DARPACK -DMATRIXSTORAGE -DNETWORKOUT -DUSE_MT=1" FFLAGS='-Wall -O2 -fopenmp -fpic -fallow-argument-mismatch' LIBS='-lpthread -lm -lc -lspooles -larpack -lblas -llapack -lgomp'
 | 
						|
    
 | 
						|
    msg2 "Building gui..."
 | 
						|
    cd "${srcdir}/CalculiX/cgx_${pkgver}/src"
 | 
						|
    make  CFLAGS='-O2 -Wall -Wno-narrowing -I./ -I/usr/include/libSNL -I../../glut-3.5/src' LFLAGS='-lGL -lGLU -lX11 -lXi -lXmu -lXext -lXt -lSM -lICE -lSNL -lm -lpthread -lrt'
 | 
						|
 | 
						|
    msg2 "Build complete"
 | 
						|
}
 | 
						|
 | 
						|
check()
 | 
						|
{
 | 
						|
  tests=('beamp' 'ball' 'pipe' 'pipe2' 'planestress'
 | 
						|
         'gap' 'gap2' 'capacitor' 'carbonseal' 'beamptied1'
 | 
						|
         'beamp1rotate' 'beamp2' 'beamp2rotate' 'beamf' 'beamhf'
 | 
						|
         'cou' 'furnace' 'gaspipe1' 'gaspipe1-oil' 'gaspipe2'
 | 
						|
         'gaspipe3' 'gaspipe4' 'gaspipe5' 'gaspipe6' 'gaspipe7'
 | 
						|
         'gaspipe8' 'gaspipe-cfd-pressure' 'gaspipe8-cfd-pressure'
 | 
						|
         'gaspipe8-cfd-massflow' 'gaspipe8-cfd-pressure'
 | 
						|
         'gaspipe8-cfd-pressure-split' 'green1' 'green2' 'green3'
 | 
						|
         'green4' 'hinge' 'hueeber1' 'hueeber2' 'induction' 'induction2'
 | 
						|
         'inistrain' 'largerot1' 'linearnet' 'mass1' 'mass2' 'mass3'
 | 
						|
         'massflow_percent_ccx' 'membrane1' 'metalforming' 'modelchel'
 | 
						|
         'multistage' 'networkmpc' 'oneel' 'pendel' 'resstress1'
 | 
						|
         'restrictor' 'segment' 'sensitivity_I' 'shell1'
 | 
						|
         'shellbeam' 'shellf' 'simplebeam' 'slant' 'spring1' 'spring2'
 | 
						|
         'small_pressure_gradient' 'square' 'substructure' 'swing'
 | 
						|
         'thermomech' 'transition' 'truss' 'vortex1' 'wire')
 | 
						|
 | 
						|
  msg "Testing solver..."
 | 
						|
  cd ${srcdir}/CalculiX/ccx_${pkgver}/test
 | 
						|
 | 
						|
  error_status=0
 | 
						|
  start_time="$(date -u +%s)"
 | 
						|
  for test_name in "${tests[@]}" ; do
 | 
						|
    ref_file=${test_name}.dat.ref
 | 
						|
    dat_file=${test_name}.dat
 | 
						|
    frd_file=${test_name}.frd
 | 
						|
    log_file=${test_name}.log
 | 
						|
 | 
						|
    msg2 "testing ${test_name}"
 | 
						|
    rm -f ${dat_file}
 | 
						|
    rm -f ${frd_file}
 | 
						|
 | 
						|
    # Testing on maximum 4 cores
 | 
						|
    OMP_NUM_THREADS=4 ../src/ccx_${pkgver} ${test_name} &> ${log_file} ||\
 | 
						|
        warning "check $(pwd)/${log_file}"
 | 
						|
 | 
						|
    if [ ! -f ${dat_file} ]; then
 | 
						|
	    warning "${dat_file} does not exist"
 | 
						|
       error_status=1
 | 
						|
    fi
 | 
						|
 | 
						|
    sum1="$(wc -l ${dat_file})"
 | 
						|
    sum2="$(wc -l ${ref_file})"
 | 
						|
    if [ ${sum1%* *} != ${sum2%* *} ]; then
 | 
						|
	    warning "The data file generated by ccx is not valid"
 | 
						|
      error_status=1
 | 
						|
    fi
 | 
						|
 | 
						|
    if grep "NaN" ${dat_file} ; then
 | 
						|
      warning "${dat_file} contains NaNs!"
 | 
						|
      error_status=1
 | 
						|
    fi
 | 
						|
 | 
						|
    if ! ./datcheck.pl ${test_name} ; then
 | 
						|
      warning "Result is inconsistent with reference data!"
 | 
						|
      error_status=1
 | 
						|
    fi
 | 
						|
  done
 | 
						|
  
 | 
						|
  cd ${srcdir}/CalculiX/ccx_${pkgver}/fluidtest  
 | 
						|
  for test_name in ./*.inp ; do
 | 
						|
    msg2 "testing ${test_name}"
 | 
						|
    OMP_NUM_THREADS=4 ../src/ccx_${pkgver} ${test_name} &> ${log_file} ||\
 | 
						|
        error_status=1 warning "check $(pwd)/${log_file}"
 | 
						|
  done
 | 
						|
  
 | 
						|
  cd ${srcdir}/CalculiX/ccx_${pkgver}/fluidtestfem  
 | 
						|
  for test_name in ./*.inp ; do
 | 
						|
    msg2 "testing ${test_name}"
 | 
						|
    OMP_NUM_THREADS=4 ../src/ccx_${pkgver} ${test_name} &> ${log_file} ||\
 | 
						|
        error_status=1 warning "check $(pwd)/${log_file}"
 | 
						|
  done
 | 
						|
  
 | 
						|
  cd ${srcdir}/CalculiX/ccx_${pkgver}/structest  
 | 
						|
  for test_name in ./*.inp ; do
 | 
						|
    msg2 "testing ${test_name}"
 | 
						|
    OMP_NUM_THREADS=4 ../src/ccx_${pkgver} ${test_name} &> ${log_file} ||\
 | 
						|
        error_status=1 warning "check $(pwd)/${log_file}"
 | 
						|
  done
 | 
						|
  end_time="$(date -u +%s)"
 | 
						|
  elapsed="$(($end_time-$start_time))"
 | 
						|
  
 | 
						|
  msg "Total of $elapsed seconds elapsed for tesing"
 | 
						|
  
 | 
						|
  return $error_status
 | 
						|
}
 | 
						|
 | 
						|
package() 
 | 
						|
{
 | 
						|
    msg "Copying files"
 | 
						|
 | 
						|
    install -d  ${pkgdir}/usr/bin
 | 
						|
 | 
						|
    install -Dm755 ${srcdir}/CalculiX/ccx_${pkgver}/src/ccx_${pkgver} ${pkgdir}/usr/bin/ccx
 | 
						|
    install -Dm755 ${srcdir}/CalculiX/cgx_${pkgver}/src/cgx ${pkgdir}/usr/bin/cgx
 | 
						|
 | 
						|
    msg2 "Done"  
 | 
						|
}
 |