no need for orientation class at the moment

implement only if we need symmetry aware operations
This commit is contained in:
Martin Diehl 2019-02-01 16:52:42 +01:00
parent 0c1c40f1de
commit 407f94082f
4 changed files with 5 additions and 49 deletions

View File

@ -69,18 +69,14 @@ add_library(ROTATIONS OBJECT "rotations.f90")
add_dependencies(ROTATIONS LAMBERT QUATERNIONS) add_dependencies(ROTATIONS LAMBERT QUATERNIONS)
list(APPEND OBJECTFILES $<TARGET_OBJECTS:ROTATIONS>) list(APPEND OBJECTFILES $<TARGET_OBJECTS:ROTATIONS>)
add_library(ORIENTATIONS OBJECT "orientations.f90")
add_dependencies(ORIENTATIONS ROTATIONS)
list(APPEND OBJECTFILES $<TARGET_OBJECTS:ORIENTATIONS>)
# SPECTRAL solver and FEM solver use different mesh files # SPECTRAL solver and FEM solver use different mesh files
if (PROJECT_NAME STREQUAL "DAMASK_spectral") if (PROJECT_NAME STREQUAL "DAMASK_spectral")
add_library(MESH OBJECT "mesh.f90") add_library(MESH OBJECT "mesh.f90")
add_dependencies(MESH ORIENTATIONS FEsolving) add_dependencies(MESH ROTATIONS FEsolving)
list(APPEND OBJECTFILES $<TARGET_OBJECTS:MESH>) list(APPEND OBJECTFILES $<TARGET_OBJECTS:MESH>)
elseif (PROJECT_NAME STREQUAL "DAMASK_FEM") elseif (PROJECT_NAME STREQUAL "DAMASK_FEM")
add_library(FEZoo OBJECT "FEM_zoo.f90") add_library(FEZoo OBJECT "FEM_zoo.f90")
add_dependencies(FEZoo ORIENTATIONS FEsolving) add_dependencies(FEZoo ROTATIONS FEsolving)
list(APPEND OBJECTFILES $<TARGET_OBJECTS:FEZoo>) list(APPEND OBJECTFILES $<TARGET_OBJECTS:FEZoo>)
add_library(MESH OBJECT "meshFEM.f90") add_library(MESH OBJECT "meshFEM.f90")
add_dependencies(MESH FEZoo) add_dependencies(MESH FEZoo)

View File

@ -14,7 +14,6 @@
#include "quaternions.f90" #include "quaternions.f90"
#include "Lambert.f90" #include "Lambert.f90"
#include "rotations.f90" #include "rotations.f90"
#include "orientations.f90"
#include "FEsolving.f90" #include "FEsolving.f90"
#include "mesh.f90" #include "mesh.f90"
#include "material.f90" #include "material.f90"

View File

@ -12,8 +12,8 @@ module crystallite
use prec, only: & use prec, only: &
pReal, & pReal, &
pInt pInt
use orientations, only: & use rotations, only: &
orientation rotation
use FEsolving, only: & use FEsolving, only: &
FEsolving_execElem, & FEsolving_execElem, &
FEsolving_execIP FEsolving_execIP
@ -45,7 +45,7 @@ module crystallite
crystallite_Tstar_v, & !< current 2nd Piola-Kirchhoff stress vector (end of converged time step) ToDo: Should be called S, 3x3 crystallite_Tstar_v, & !< current 2nd Piola-Kirchhoff stress vector (end of converged time step) ToDo: Should be called S, 3x3
crystallite_Tstar0_v, & !< 2nd Piola-Kirchhoff stress vector at start of FE inc ToDo: Should be called S, 3x3 crystallite_Tstar0_v, & !< 2nd Piola-Kirchhoff stress vector at start of FE inc ToDo: Should be called S, 3x3
crystallite_partionedTstar0_v !< 2nd Piola-Kirchhoff stress vector at start of homog inc ToDo: Should be called S, 3x3 crystallite_partionedTstar0_v !< 2nd Piola-Kirchhoff stress vector at start of homog inc ToDo: Should be called S, 3x3
type(orientation), dimension(:,:,:), allocatable, private :: & type(rotation), dimension(:,:,:), allocatable, private :: &
crystallite_ori, & !< orientation as quaternion crystallite_ori, & !< orientation as quaternion
crystallite_ori0 !< initial orientation as quaternion crystallite_ori0 !< initial orientation as quaternion
real(pReal), dimension(:,:,:,:), allocatable, private :: & real(pReal), dimension(:,:,:,:), allocatable, private :: &

View File

@ -1,39 +0,0 @@
!---------------------------------------------------------------------------------------------------
!> @author Martin Diehl, Max-Planck-Institut für Eisenforschung GmbH
!> @brief orientation storage
!> @details: orientation = rotation + symmetry
!---------------------------------------------------------------------------------------------------
module orientations
use rotations
use prec, only: &
pStringLen
implicit none
type, extends(rotation), public :: orientation
character(len=pStringLen) :: sym = 'none'
end type orientation
interface orientation
module procedure :: orientation_init
end interface orientation
contains
type(orientation) function orientation_init(sym,eu,ax,om,qu,cu,ho,ro)
use prec
implicit none
character(len=pStringLen), intent(in), optional :: sym
real(pReal), intent(in), optional, dimension(3) :: eu, cu, ho
real(pReal), intent(in), optional, dimension(4) :: ax, qu, ro
real(pReal), intent(in), optional, dimension(3,3) :: om
if (present(sym)) orientation_init%sym = sym
if (present(om)) then
call orientation_init%fromRotationMatrix(om)
endif
end function orientation_init
end module