Changed: Continue supporting old file structure also + corrected spacing

This commit is contained in:
Knut Morten Okstad
2018-04-22 09:01:37 +02:00
parent 095c671396
commit d5fa8eac03
2 changed files with 100 additions and 25 deletions

View File

@@ -21,47 +21,110 @@ set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
if(EXISTS ${PROJECT_SOURCE_DIR}/IFEM-Poisson) if(EXISTS ${PROJECT_SOURCE_DIR}/IFEM-Poisson)
add_subdirectory(IFEM-Poisson) add_subdirectory(IFEM-Poisson)
endif() elseif(EXISTS ${PROJECT_SOURCE_DIR}/Poisson)
if(EXISTS ${PROJECT_SOURCE_DIR}/IFEM-AdvectionDiffusion) add_subdirectory(Poisson)
add_subdirectory(IFEM-AdvectionDiffusion)
endif()
if(EXISTS ${PROJECT_SOURCE_DIR}/IFEM-Darcy)
add_subdirectory(IFEM-Darcy)
endif() endif()
set(HAVE_ADVDIFF FALSE)
if(EXISTS ${PROJECT_SOURCE_DIR}/IFEM-AdvectionDiffusion)
add_subdirectory(IFEM-AdvectionDiffusion)
set(HAVE_ADVDIFF TRUE)
elseif(EXISTS ${PROJECT_SOURCE_DIR}/AdvectionDiffusion)
add_subdirectory(AdvectionDiffusion)
set(HAVE_ADVDIFF TRUE)
endif()
if(EXISTS ${PROJECT_SOURCE_DIR}/IFEM-Darcy)
add_subdirectory(IFEM-Darcy)
elseif(EXISTS ${PROJECT_SOURCE_DIR}/Darcy)
add_subdirectory(Darcy)
endif()
set(HAVE_BEAMEX FALSE)
set(HAVE_FINITEDEF FALSE)
if(EXISTS ${PROJECT_SOURCE_DIR}/IFEM-Elasticity) if(EXISTS ${PROJECT_SOURCE_DIR}/IFEM-Elasticity)
add_subdirectory(IFEM-Elasticity) set(ELASTICITY_SRC IFEM-Elasticity)
add_subdirectory(IFEM-Elasticity/Beam) else()
add_subdirectory(IFEM-Elasticity/Linear) set(ELASTICITY_SRC Elasticity)
if(EXISTS ${PROJECT_SOURCE_DIR}/IFEM-Elasticity/IFEM-BeamEx) endif()
add_subdirectory(IFEM-Elasticity/IFEM-BeamEx) if(EXISTS ${PROJECT_SOURCE_DIR}/${ELASTICITY_SRC})
add_subdirectory(IFEM-Elasticity/IFEM-BeamEx/BeamSim)
add_subdirectory(${ELASTICITY_SRC})
add_subdirectory(${ELASTICITY_SRC}/Beam)
add_subdirectory(${ELASTICITY_SRC}/Linear)
if(EXISTS ${PROJECT_SOURCE_DIR}/${ELASTICITY_SRC}/IFEM-BeamEx)
set(BEAMEX_SRC ${ELASTICITY_SRC}/IFEM-BeamEx)
else()
set(BEAMEX_SRC ${ELASTICITY_SRC}/BeamEx)
endif() endif()
if(EXISTS ${PROJECT_SOURCE_DIR}/IFEM-Elasticity/IFEM-FiniteDeformation) if (EXISTS ${PROJECT_SOURCE_DIR}/${BEAMEX_SRC})
add_subdirectory(IFEM-Elasticity/IFEM-FiniteDeformation) add_subdirectory(${BEAMEX_SRC})
add_subdirectory(IFEM-Elasticity/IFEM-FiniteDeformation/Nonlinear) add_subdirectory(${BEAMEX_SRC}/BeamSim)
set(HAVE_BEAMEX TRUE)
endif() endif()
if(EXISTS ${PROJECT_SOURCE_DIR}/${ELASTICITY_SRC}/IFEM-FiniteDeformation)
set(FINITEDEF_SRC ${ELASTICITY_SRC}/IFEM-FiniteDeformation)
else()
set(FINITEDEF_SRC ${ELASTICITY_SRC}/FiniteDeformation)
endif()
if (EXISTS ${PROJECT_SOURCE_DIR}/${FINITEDEF_SRC})
add_subdirectory(${FINITEDEF_SRC})
add_subdirectory(${FINITEDEF_SRC}/Nonlinear)
set(HAVE_FINITEDEF TRUE)
endif()
if(EXISTS ${PROJECT_SOURCE_DIR}/IFEM-ThermoElasticity) if(EXISTS ${PROJECT_SOURCE_DIR}/IFEM-ThermoElasticity)
add_subdirectory(IFEM-ThermoElasticity) add_subdirectory(IFEM-ThermoElasticity)
elseif(EXISTS ${PROJECT_SOURCE_DIR}/ThermoElasticity)
add_subdirectory(ThermoElasticity)
endif() endif()
if(EXISTS ${PROJECT_SOURCE_DIR}/IFEM-PoroElasticity) if(EXISTS ${PROJECT_SOURCE_DIR}/IFEM-PoroElasticity)
add_subdirectory(IFEM-PoroElasticity) add_subdirectory(IFEM-PoroElasticity)
elseif(EXISTS ${PROJECT_SOURCE_DIR}/PoroElasticity)
add_subdirectory(PoroElasticity)
endif() endif()
if(EXISTS ${PROJECT_SOURCE_DIR}/IFEM-OpenFrac) if(EXISTS ${PROJECT_SOURCE_DIR}/IFEM-OpenFrac)
add_subdirectory(IFEM-OpenFrac) add_subdirectory(IFEM-OpenFrac)
elseif(EXISTS ${PROJECT_SOURCE_DIR}/FractureDynamics)
add_subdirectory(FractureDynamics)
endif() endif()
endif() endif()
if(EXISTS ${PROJECT_SOURCE_DIR}/IFEM-Stokes) if(EXISTS ${PROJECT_SOURCE_DIR}/IFEM-Stokes)
add_subdirectory(${PROJECT_SOURCE_DIR}/IFEM-Stokes) set(STOKES_SRC IFEM-Stokes)
else()
set(STOKES_SRC Stokes)
endif()
if(EXISTS ${PROJECT_SOURCE_DIR}/${STOKES_SRC})
add_subdirectory(${PROJECT_SOURCE_DIR}/${STOKES_SRC})
if(EXISTS ${PROJECT_SOURCE_DIR}/IFEM-NavierStokes) if(EXISTS ${PROJECT_SOURCE_DIR}/IFEM-NavierStokes)
if (EXISTS ${PROJECT_SOURCE_DIR}/IFEM-AdvectionDiffusion) set(NAVIERSTOKES_SRC IFEM-NavierStokes)
add_subdirectory(IFEM-NavierStokes) else()
set(NAVIERSTOKES_SRC NavierStokes)
endif()
if(EXISTS ${PROJECT_SOURCE_DIR}/${NAVIERSTOKES_SRC})
if (${HAVE_ADVDIFF})
add_subdirectory(${NAVIERSTOKES_SRC})
endif() endif()
if(EXISTS ${PROJECT_SOURCE_DIR}/IFEM-FSI AND if (${HAVE_BEAMEX} AND ${HAVE_FINITEDEF})
EXISTS ${PROJECT_SOURCE_DIR}/IFEM-Elasticity/IFEM-BeamEx AND
EXISTS ${PROJECT_SOURCE_DIR}/IFEM-Elasticity/IFEM-FiniteDeformation) if(EXISTS ${PROJECT_SOURCE_DIR}/IFEM-FSI)
add_subdirectory(IFEM-FSI) set(FSI_SRC IFEM-FSI)
else()
set(FSI_SRC FSI)
endif()
if(EXISTS ${PROJECT_SOURCE_DIR}/${FSI})
add_subdirectory(${FSI})
endif()
endif() endif()
endif() endif()
endif() endif()

View File

@@ -1,8 +1,20 @@
# IFEM project # IFEM project
## Introduction ## Introduction
IFEM is an object-oriented toolbox for implementing isogeometric finite element solvers for linear and nonlinear partial differential equations. The main toolbox together with structural mechanics applications was developed through the ICADA project at SINTEF Digital in collaboration with NTNU. The important extension to fluid mechanics and coupled problems was done during the NOWITECH and FSI-WT project. The purpose of this code is to serve as a common base for isogeometric PDE-simulators, using splines and NURBS as basis functions in the finite element formulations. The toolbox contains methods for doing linear and non-linear, stationary and dynamic time-domain analyses, as well as eigenvalue analyses. IFEM is parallelized using the Petsc library and enables adaptive refinement using LR B-splines based on residual or recovery methods for a posteriori error estimation.
IFEM is an object-oriented toolbox for implementing isogeometric finite element
solvers for linear and nonlinear partial differential equations.
The main toolbox together with structural mechanics applications was developed
through the ICADA project at SINTEF Digital in collaboration with NTNU.
The important extension to fluid mechanics and coupled problems was done
during the NOWITECH and FSI-WT projects.
The purpose of this code is to serve as a common base for isogeometric
PDE-simulators, using splines and NURBS as basis functions in the finite element
formulations. The toolbox contains methods for doing linear and non-linear,
stationary and dynamic time-domain analyses, as well as eigenvalue analyses.
IFEM is parallelized using the PETSc library and enables adaptive refinement
using LR B-splines based on residual or recovery methods for a posteriori error estimation.
## Module overview ## Module overview