diff --git a/python/damask/solver/_marc.py b/python/damask/solver/_marc.py index 135736d14..3d006d27b 100644 --- a/python/damask/solver/_marc.py +++ b/python/damask/solver/_marc.py @@ -64,7 +64,7 @@ class Marc: Defaults to ''. """ - usersub = (self.damask_root/'src/DAMASK_Marc').with_suffix('.f90' if compile else '.marc') + usersub = (self.damask_root/'src/Marc/DAMASK_Marc').with_suffix('.f90' if compile else '.marc') if not usersub.is_file(): raise FileNotFoundError(f'subroutine ({"source" if compile else "binary"}) "{usersub}" not found') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ff24066de..0d1f71b30 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -6,11 +6,7 @@ endif() file(GLOB damask-sources CONFIGURE_DEPENDS *.f90 *.c) -# probably we should have a subfolder for MSC.Marc list(FILTER damask-sources EXCLUDE REGEX ".*materialpoint.f90") -list(FILTER damask-sources EXCLUDE REGEX ".*DAMASK_Marc.*.f90") -list(FILTER damask-sources EXCLUDE REGEX ".*commercialFEM_fileList.*.f90") - if(PROJECT_NAME STREQUAL "damask-grid") set(executable-name "DAMASK_grid") diff --git a/src/DAMASK_Marc.f90 b/src/Marc/DAMASK_Marc.f90 similarity index 91% rename from src/DAMASK_Marc.f90 rename to src/Marc/DAMASK_Marc.f90 index 22e6261ca..da9702dc6 100644 --- a/src/DAMASK_Marc.f90 +++ b/src/Marc/DAMASK_Marc.f90 @@ -15,7 +15,7 @@ #define MARC4DAMASK Marc4DAMASK #endif -#include "prec.f90" +#include "../prec.f90" module DAMASK_interface use prec @@ -139,8 +139,55 @@ end function solverIsSymmetric end module DAMASK_interface - -#include "commercialFEM_fileList.f90" +#include "../parallelization.f90" +#include "../constants.f90" +#include "../IO.f90" +#include "../YAML_types.f90" +#include "../YAML_parse.f90" +#include "../HDF5_utilities.f90" +#include "../results.f90" +#include "../config.f90" +#include "../LAPACK_interface.f90" +#include "../math.f90" +#include "../rotations.f90" +#include "../polynomials.f90" +#include "../lattice.f90" +#include "../element.f90" +#include "../geometry_plastic_nonlocal.f90" +#include "../discretization.f90" +#include "discretization_Marc.f90" +#include "../material.f90" +#include "../phase.f90" +#include "../phase_mechanical.f90" +#include "../phase_mechanical_elastic.f90" +#include "../phase_mechanical_plastic.f90" +#include "../phase_mechanical_plastic_none.f90" +#include "../phase_mechanical_plastic_isotropic.f90" +#include "../phase_mechanical_plastic_phenopowerlaw.f90" +#include "../phase_mechanical_plastic_kinehardening.f90" +#include "../phase_mechanical_plastic_dislotwin.f90" +#include "../phase_mechanical_plastic_dislotungsten.f90" +#include "../phase_mechanical_plastic_nonlocal.f90" +#include "../phase_mechanical_eigen.f90" +#include "../phase_mechanical_eigen_cleavageopening.f90" +#include "../phase_mechanical_eigen_thermalexpansion.f90" +#include "../phase_thermal.f90" +#include "../phase_thermal_dissipation.f90" +#include "../phase_thermal_externalheat.f90" +#include "../phase_damage.f90" +#include "../phase_damage_isobrittle.f90" +#include "../phase_damage_anisobrittle.f90" +#include "../homogenization.f90" +#include "../homogenization_mechanical.f90" +#include "../homogenization_mechanical_pass.f90" +#include "../homogenization_mechanical_isostrain.f90" +#include "../homogenization_mechanical_RGC.f90" +#include "../homogenization_thermal.f90" +#include "../homogenization_thermal_pass.f90" +#include "../homogenization_thermal_isotemperature.f90" +#include "../homogenization_damage.f90" +#include "../homogenization_damage_pass.f90" +#include "../materialpoint.f90" !-------------------------------------------------------------------------------------------------- !> @brief This is the MSC.Marc user subroutine for defining material behavior @@ -214,8 +261,8 @@ subroutine hypela2(d,g,e,de,s,t,dt,ngens,m,nn,kcus,matus,ndi,nshear,disp, & ! Marc common blocks are in fixed format so they have to be reformated to free format (f90) ! Beware of changes in newer Marc versions -#include QUOTE(PASTE(./Marc/include/concom,MARC4DAMASK)) ! concom is needed for inc, lovl -#include QUOTE(PASTE(./Marc/include/creeps,MARC4DAMASK)) ! creeps is needed for timinc (time increment) +#include QUOTE(PASTE(include/concom,MARC4DAMASK)) ! concom is needed for inc, lovl +#include QUOTE(PASTE(include/creeps,MARC4DAMASK)) ! creeps is needed for timinc (time increment) logical :: cutBack real(pReal), dimension(6) :: stress @@ -367,7 +414,7 @@ subroutine uedinc(inc,incsub) integer :: n, nqncomp, nqdatatype integer, save :: inc_written real(pReal), allocatable, dimension(:,:) :: d_n -#include QUOTE(PASTE(./Marc/include/creeps,MARC4DAMASK)) ! creeps is needed for timinc (time increment) +#include QUOTE(PASTE(include/creeps,MARC4DAMASK)) ! creeps is needed for timinc (time increment) if (inc > inc_written) then diff --git a/src/commercialFEM_fileList.f90 b/src/commercialFEM_fileList.f90 deleted file mode 100644 index 8bcf2f454..000000000 --- a/src/commercialFEM_fileList.f90 +++ /dev/null @@ -1,54 +0,0 @@ -!-------------------------------------------------------------------------------------------------- -!> @author Martin Diehl, Max-Planck-Institut für Eisenforschung GmbH -!> @brief all DAMASK files without solver -!> @details List of files needed by MSC.Marc -!-------------------------------------------------------------------------------------------------- -#include "parallelization.f90" -#include "constants.f90" -#include "IO.f90" -#include "YAML_types.f90" -#include "YAML_parse.f90" -#include "HDF5_utilities.f90" -#include "results.f90" -#include "config.f90" -#include "LAPACK_interface.f90" -#include "math.f90" -#include "rotations.f90" -#include "polynomials.f90" -#include "lattice.f90" -#include "element.f90" -#include "geometry_plastic_nonlocal.f90" -#include "discretization.f90" -#include "Marc/discretization_Marc.f90" -#include "material.f90" -#include "phase.f90" -#include "phase_mechanical.f90" -#include "phase_mechanical_elastic.f90" -#include "phase_mechanical_plastic.f90" -#include "phase_mechanical_plastic_none.f90" -#include "phase_mechanical_plastic_isotropic.f90" -#include "phase_mechanical_plastic_phenopowerlaw.f90" -#include "phase_mechanical_plastic_kinehardening.f90" -#include "phase_mechanical_plastic_dislotwin.f90" -#include "phase_mechanical_plastic_dislotungsten.f90" -#include "phase_mechanical_plastic_nonlocal.f90" -#include "phase_mechanical_eigen.f90" -#include "phase_mechanical_eigen_cleavageopening.f90" -#include "phase_mechanical_eigen_thermalexpansion.f90" -#include "phase_thermal.f90" -#include "phase_thermal_dissipation.f90" -#include "phase_thermal_externalheat.f90" -#include "phase_damage.f90" -#include "phase_damage_isobrittle.f90" -#include "phase_damage_anisobrittle.f90" -#include "homogenization.f90" -#include "homogenization_mechanical.f90" -#include "homogenization_mechanical_pass.f90" -#include "homogenization_mechanical_isostrain.f90" -#include "homogenization_mechanical_RGC.f90" -#include "homogenization_thermal.f90" -#include "homogenization_thermal_pass.f90" -#include "homogenization_thermal_isotemperature.f90" -#include "homogenization_damage.f90" -#include "homogenization_damage_pass.f90" -#include "materialpoint.f90" diff --git a/src/materialpoint.f90 b/src/materialpoint.f90 index 743113036..1bf572bb0 100644 --- a/src/materialpoint.f90 +++ b/src/materialpoint.f90 @@ -131,7 +131,7 @@ end subroutine materialpoint_init !-------------------------------------------------------------------------------------------------- -!> @brief perform initialization at first call, update variables and call the actual material model +!> @brief Update variables and call the material model. !-------------------------------------------------------------------------------------------------- subroutine materialpoint_general(mode, ffn, ffn1, temperature_inp, dt, elFE, ip, cauchyStress, jacobian)