From c22054020c56bad659cfc32d5cebc521651a2bfe Mon Sep 17 00:00:00 2001 From: Dave Whipp <dwhipp@dal.ca> Date: Mon, 20 Dec 2010 19:07:17 +0000 Subject: [PATCH] Added input of matrule to determine whether divFEM, majority or minority volume is used for material assignment in elements. Added input of bulkvisc to determine whether a penalty value or bulk viscosity is input. Added input of init_e2d to specify whether or not plastic materials should have their effective viscosity calculated using an initial strain rate. --- src/read_input_file.f90 | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/src/read_input_file.f90 b/src/read_input_file.f90 index 937ffa2e..c41bfaf5 100644 --- a/src/read_input_file.f90 +++ b/src/read_input_file.f90 @@ -16,8 +16,8 @@ !------------------------------------------------------------------------------| !------------------------------------------------------------------------------| -subroutine read_input_file (params,threadinfo,material0,mat, & - surface,boxes,sections,cube_faces) +subroutine read_input_file (params,threadinfo,material0,mat,surface,boxes, & + sections,cube_faces) !------------------------------------------------------------------------------| !(((((((((((((((( Purpose of the routine )))))))))))))))))))))))))))))))))))))) @@ -41,6 +41,8 @@ subroutine read_input_file (params,threadinfo,material0,mat, & ! material 0 is void ! leveluniform_oct is level of uniform discretization (power of 2) ! levelmax_oct is maximum discretization level +! matrule is the flag that determines the rule used for assigning material +! properties within the model volume ! levelcut is maximum level (within a leave) used to estimate integrals ! in divfem approximation ! levelapprox is maximum level to use to estimate positive volume @@ -157,6 +159,22 @@ if (iproc==0) call scanfile (params%infile,'material0',material0,ires) call mpi_bcast(material0,1,mpi_integer,0,mpi_comm_world,ierr) write(threadinfo%Logunit,*) 'material0 ',material0 +params%bulkvisc=.false. +if (iproc==0) then + call scanfile (params%infile,'bulkvisc',answer,ires) + params%bulkvisc=(trim(answer)=='T') +endif +call mpi_bcast(params%bulkvisc,1,mpi_logical,0,mpi_comm_world,ierr) +write(threadinfo%Logunit,*) 'bulkvisc ',params%bulkvisc + +params%init_e2d=.false. +if (iproc==0) then + call scanfile (params%infile,'init_e2d',answer,ires) + params%init_e2d=(trim(answer)=='T') +endif +call mpi_bcast(params%init_e2d,1,mpi_logical,0,mpi_comm_world,ierr) +write(threadinfo%Logunit,*) 'init_e2d ',params%init_e2d + do i=0,params%nmat write(cm,'(i3)') i il=1 @@ -248,19 +266,21 @@ if (iproc==0) call scanfile (params%infile,'leveluniform_oct',params%levelunifor call mpi_bcast(params%leveluniform_oct,1,mpi_integer,0,mpi_comm_world,ierr) write(threadinfo%Logunit,*) 'leveluniform_oct',params%leveluniform_oct - params%levelmax_oct=4 if (iproc==0) call scanfile (params%infile,'levelmax_oct',params%levelmax_oct,ires) call mpi_bcast(params%levelmax_oct,1,mpi_integer,0,mpi_comm_world,ierr) write(threadinfo%Logunit,*) 'levelmax_oct',params%levelmax_oct +params%matrule=0 +if (iproc==0) call scanfile (params%infile,'matrule',params%matrule,ires) +call mpi_bcast(params%matrule,1,mpi_integer,0,mpi_comm_world,ierr) +write(threadinfo%Logunit,*) 'matrule',params%matrule params%levelcut=2 if (iproc==0) call scanfile (params%infile,'levelcut',params%levelcut,ires) call mpi_bcast(params%levelcut,1,mpi_integer,0,mpi_comm_world,ierr) write(threadinfo%Logunit,*) 'levelcut',params%levelcut - params%levelapprox=3 if (iproc.eq.0) call scanfile (params%infile,'levelapprox',params%levelapprox,ires) call mpi_bcast(params%levelapprox,1,mpi_integer,0,mpi_comm_world,ierr) -- GitLab