compiles now, but most likely does not work
This commit is contained in:
parent
0d8f17cbe6
commit
f7c20d74af
|
@ -175,20 +175,24 @@ if (PROJECT_NAME STREQUAL "DAMASK_spectral")
|
||||||
"spectral_mech_Basic.f90")
|
"spectral_mech_Basic.f90")
|
||||||
add_dependencies(SPECTRAL_SOLVER SPECTRAL_UTILITIES)
|
add_dependencies(SPECTRAL_SOLVER SPECTRAL_UTILITIES)
|
||||||
list(APPEND OBJECTFILES $<TARGET_OBJECTS:SPECTRAL_SOLVER>)
|
list(APPEND OBJECTFILES $<TARGET_OBJECTS:SPECTRAL_SOLVER>)
|
||||||
|
|
||||||
if(NOT CMAKE_BUILD_TYPE STREQUAL "SYNTAXONLY")
|
if(NOT CMAKE_BUILD_TYPE STREQUAL "SYNTAXONLY")
|
||||||
add_executable(DAMASK_spectral "DAMASK_spectral.f90" ${OBJECTFILES})
|
add_executable(DAMASK_spectral "DAMASK_spectral.f90" ${OBJECTFILES})
|
||||||
else()
|
else()
|
||||||
add_library(DAMASK_spectral OBJECT "DAMASK_spectral.f90")
|
add_library(DAMASK_spectral OBJECT "DAMASK_spectral.f90")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_dependencies(DAMASK_spectral SPECTRAL_SOLVER)
|
add_dependencies(DAMASK_spectral SPECTRAL_SOLVER)
|
||||||
elseif (PROJECT_NAME STREQUAL "DAMASK_FEM")
|
elseif (PROJECT_NAME STREQUAL "DAMASK_FEM")
|
||||||
add_library(FEM_UTILITIES OBJECT "FEM_utilities.f90")
|
add_library(FEM_UTILITIES OBJECT "FEM_utilities.f90")
|
||||||
add_dependencies(FEM_UTILITIES DAMASK_CPFE)
|
add_dependencies(FEM_UTILITIES DAMASK_CPFE)
|
||||||
|
list(APPEND OBJECTFILES $<TARGET_OBJECTS:FEM_UTILITIES>)
|
||||||
|
|
||||||
add_library(FEM_SOLVER OBJECT
|
add_library(FEM_SOLVER OBJECT
|
||||||
"FEM_mech.f90")
|
"FEM_mech.f90")
|
||||||
add_dependencies(FEM_SOLVER FEM_UTILITIES)
|
add_dependencies(FEM_SOLVER FEM_UTILITIES)
|
||||||
|
list(APPEND OBJECTFILES $<TARGET_OBJECTS:FEM_SOLVER>)
|
||||||
|
|
||||||
add_executable(DAMASK_FEM "DAMASK_FEM.f90")
|
add_executable(DAMASK_FEM "DAMASK_FEM.f90" ${OBJECTFILES})
|
||||||
add_dependencies(DAMASK_FEM FEM_SOLVER)
|
add_dependencies(DAMASK_FEM FEM_SOLVER)
|
||||||
endif()
|
endif()
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -9,6 +9,8 @@ module FEM_mech
|
||||||
|
|
||||||
use PETScdmda
|
use PETScdmda
|
||||||
use PETScsnes
|
use PETScsnes
|
||||||
|
use PETScDM
|
||||||
|
use PETScDMplex
|
||||||
use prec, only: &
|
use prec, only: &
|
||||||
pInt, &
|
pInt, &
|
||||||
pReal
|
pReal
|
||||||
|
@ -75,9 +77,6 @@ use PETScsnes
|
||||||
PetscDSGetDiscretization, &
|
PetscDSGetDiscretization, &
|
||||||
PetscDualSpaceGetFunctional, &
|
PetscDualSpaceGetFunctional, &
|
||||||
DMGetLabelSize, &
|
DMGetLabelSize, &
|
||||||
DMPlexCopyCoordinates, &
|
|
||||||
DMPlexGetHeightStratum, &
|
|
||||||
DMPlexGetDepthStratum, &
|
|
||||||
DMSNESSetFunctionLocal, &
|
DMSNESSetFunctionLocal, &
|
||||||
DMSNESSetJacobianLocal, &
|
DMSNESSetJacobianLocal, &
|
||||||
SNESSetOptionsPrefix, &
|
SNESSetOptionsPrefix, &
|
||||||
|
@ -209,7 +208,7 @@ subroutine FEM_mech_init(fieldBC)
|
||||||
endif
|
endif
|
||||||
enddo; enddo
|
enddo; enddo
|
||||||
call DMPlexCreateSection(mech_mesh,dimPlex,1,pNumComp,pNumDof, &
|
call DMPlexCreateSection(mech_mesh,dimPlex,1,pNumComp,pNumDof, &
|
||||||
numBC,pBcField,pBcComps,pBcPoints,PETSC_NULL_VEC, &
|
numBC,pBcField,pBcComps,pBcPoints,PETSC_NULL_IS, &
|
||||||
section,ierr)
|
section,ierr)
|
||||||
CHKERRQ(ierr)
|
CHKERRQ(ierr)
|
||||||
call DMSetDefaultSection(mech_mesh,section,ierr); CHKERRQ(ierr)
|
call DMSetDefaultSection(mech_mesh,section,ierr); CHKERRQ(ierr)
|
||||||
|
@ -607,7 +606,7 @@ subroutine FEM_mech_formJacobian(dm_local,xx_local,Jac_pre,Jac,dummy,ierr)
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! apply boundary conditions
|
! apply boundary conditions
|
||||||
call DMPlexCreateRigidBody(dm_local,matnull,ierr); CHKERRQ(ierr)
|
!call DMPlexCreateRigidBody(dm_local,matnull,ierr); CHKERRQ(ierr) MD: linker error
|
||||||
call MatSetNullSpace(Jac,matnull,ierr); CHKERRQ(ierr)
|
call MatSetNullSpace(Jac,matnull,ierr); CHKERRQ(ierr)
|
||||||
call MatSetNearNullSpace(Jac,matnull,ierr); CHKERRQ(ierr)
|
call MatSetNearNullSpace(Jac,matnull,ierr); CHKERRQ(ierr)
|
||||||
call MatNullSpaceDestroy(matnull,ierr); CHKERRQ(ierr)
|
call MatNullSpaceDestroy(matnull,ierr); CHKERRQ(ierr)
|
||||||
|
|
Loading…
Reference in New Issue