Skip to content
Snippets Groups Projects
Commit c2205402 authored by Dave Whipp's avatar Dave Whipp
Browse files

Added input of matrule to determine whether divFEM, majority or minority...

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.
parent 6a0c6561
No related branches found
No related tags found
No related merge requests found
...@@ -16,8 +16,8 @@ ...@@ -16,8 +16,8 @@
!------------------------------------------------------------------------------| !------------------------------------------------------------------------------|
!------------------------------------------------------------------------------| !------------------------------------------------------------------------------|
subroutine read_input_file (params,threadinfo,material0,mat, & subroutine read_input_file (params,threadinfo,material0,mat,surface,boxes, &
surface,boxes,sections,cube_faces) sections,cube_faces)
!------------------------------------------------------------------------------| !------------------------------------------------------------------------------|
!(((((((((((((((( Purpose of the routine )))))))))))))))))))))))))))))))))))))) !(((((((((((((((( Purpose of the routine ))))))))))))))))))))))))))))))))))))))
...@@ -41,6 +41,8 @@ subroutine read_input_file (params,threadinfo,material0,mat, & ...@@ -41,6 +41,8 @@ subroutine read_input_file (params,threadinfo,material0,mat, &
! material 0 is void ! material 0 is void
! leveluniform_oct is level of uniform discretization (power of 2) ! leveluniform_oct is level of uniform discretization (power of 2)
! levelmax_oct is maximum discretization level ! 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 ! levelcut is maximum level (within a leave) used to estimate integrals
! in divfem approximation ! in divfem approximation
! levelapprox is maximum level to use to estimate positive volume ! levelapprox is maximum level to use to estimate positive volume
...@@ -157,6 +159,22 @@ if (iproc==0) call scanfile (params%infile,'material0',material0,ires) ...@@ -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) call mpi_bcast(material0,1,mpi_integer,0,mpi_comm_world,ierr)
write(threadinfo%Logunit,*) 'material0 ',material0 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 do i=0,params%nmat
write(cm,'(i3)') i write(cm,'(i3)') i
il=1 il=1
...@@ -248,19 +266,21 @@ if (iproc==0) call scanfile (params%infile,'leveluniform_oct',params%levelunifor ...@@ -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) call mpi_bcast(params%leveluniform_oct,1,mpi_integer,0,mpi_comm_world,ierr)
write(threadinfo%Logunit,*) 'leveluniform_oct',params%leveluniform_oct write(threadinfo%Logunit,*) 'leveluniform_oct',params%leveluniform_oct
params%levelmax_oct=4 params%levelmax_oct=4
if (iproc==0) call scanfile (params%infile,'levelmax_oct',params%levelmax_oct,ires) 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) call mpi_bcast(params%levelmax_oct,1,mpi_integer,0,mpi_comm_world,ierr)
write(threadinfo%Logunit,*) 'levelmax_oct',params%levelmax_oct 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 params%levelcut=2
if (iproc==0) call scanfile (params%infile,'levelcut',params%levelcut,ires) if (iproc==0) call scanfile (params%infile,'levelcut',params%levelcut,ires)
call mpi_bcast(params%levelcut,1,mpi_integer,0,mpi_comm_world,ierr) call mpi_bcast(params%levelcut,1,mpi_integer,0,mpi_comm_world,ierr)
write(threadinfo%Logunit,*) 'levelcut',params%levelcut write(threadinfo%Logunit,*) 'levelcut',params%levelcut
params%levelapprox=3 params%levelapprox=3
if (iproc.eq.0) call scanfile (params%infile,'levelapprox',params%levelapprox,ires) 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) call mpi_bcast(params%levelapprox,1,mpi_integer,0,mpi_comm_world,ierr)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment