Files
create/src/Mod/Fem/CMakeLists.txt
2020-07-01 17:42:47 +02:00

443 lines
14 KiB
CMake
Executable File

if(BUILD_FEM_VTK)
add_definitions(-DFC_USE_VTK)
endif(BUILD_FEM_VTK)
# suppress warnings from smesh
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGXX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-overloaded-virtual")
endif()
# ************************************************************************************************
# ****** sub directories**************************************************************************
# ************************************************************************************************
add_subdirectory(App)
if(BUILD_GUI)
add_subdirectory(Gui)
endif(BUILD_GUI)
# ************************************************************************************************
# ****** Python non Gui packages and modules *****************************************************
# ************************************************************************************************
SET(FemBaseModules_SRCS
coding_conventions.md
Init.py
InitGui.py
ObjectsFem.py
TestFemApp.py
)
SET(FemCommands_SRCS
femcommands/__init__.py
femcommands/commands.py
femcommands/manager.py
)
SET(FemExamples_SRCS
femexamples/__init__.py
femexamples/boxanalysis_static.py
femexamples/boxanalysis_frequency.py
femexamples/ccx_cantilever_faceload.py
femexamples/ccx_cantilever_nodeload.py
femexamples/ccx_cantilever_hexa20faceload.py
femexamples/ccx_cantilever_prescribeddisplacement.py
femexamples/constraint_contact_shell_shell.py
femexamples/constraint_contact_solid_solid.py
femexamples/constraint_section_print.py
femexamples/constraint_tie.py
femexamples/manager.py
femexamples/material_multiple_twoboxes.py
femexamples/material_nl_platewithhole.py
femexamples/rc_wall_2d.py
femexamples/thermomech_bimetall.py
femexamples/thermomech_flow1d.py
femexamples/thermomech_spine.py
)
SET(FemExampleMeshes_SRCS
femexamples/meshes/__init__.py
femexamples/meshes/mesh_boxanalysis_tetra10.py
femexamples/meshes/mesh_boxes_2_vertikal_tetra10.py
femexamples/meshes/mesh_canticcx_hexa20.py
femexamples/meshes/mesh_canticcx_tetra10.py
femexamples/meshes/mesh_constraint_tie_tetra10.py
femexamples/meshes/mesh_contact_box_halfcylinder_tetra10.py
femexamples/meshes/mesh_contact_tube_tube_tria3.py
femexamples/meshes/mesh_rc_wall_2d_tria6.py
femexamples/meshes/mesh_section_print_tetra10.py
femexamples/meshes/mesh_platewithhole_tetra10.py
femexamples/meshes/mesh_thermomech_bimetall_tetra10.py
femexamples/meshes/mesh_thermomech_flow1d_seg3.py
femexamples/meshes/mesh_thermomech_spine_tetra10.py
)
SET(FemInOut_SRCS
feminout/__init__.py
feminout/convert2TetGen.py
feminout/importCcxDatResults.py
feminout/importCcxFrdResults.py
feminout/importFenicsMesh.py
feminout/importInpMesh.py
feminout/importPyMesh.py
feminout/importToolsFem.py
feminout/importVTKResults.py
feminout/importYamlJsonMesh.py
feminout/importZ88Mesh.py
feminout/importZ88O2Results.py
feminout/readFenicsXDMF.py
feminout/readFenicsXML.py
feminout/writeFenicsXDMF.py
feminout/writeFenicsXML.py
)
SET(FemMesh_SRCS
femmesh/__init__.py
femmesh/femmesh2mesh.py
femmesh/gmshtools.py
femmesh/meshtools.py
)
SET(FemObjects_SRCS
femobjects/__init__.py
femobjects/base_fempythonobject.py
femobjects/constant_vacuumpermittivity.py
femobjects/constraint_bodyheatsource.py
femobjects/constraint_electrostaticpotential.py
femobjects/constraint_flowvelocity.py
femobjects/constraint_initialflowvelocity.py
femobjects/constraint_sectionprint.py
femobjects/constraint_selfweight.py
femobjects/constraint_tie.py
femobjects/element_fluid1D.py
femobjects/element_geometry1D.py
femobjects/element_geometry2D.py
femobjects/element_rotation1D.py
femobjects/material_common.py
femobjects/material_mechanicalnonlinear.py
femobjects/material_reinforced.py
femobjects/mesh_boundarylayer.py
femobjects/mesh_gmsh.py
femobjects/mesh_group.py
femobjects/mesh_region.py
femobjects/mesh_result.py
femobjects/result_mechanical.py
femobjects/solver_ccxtools.py
)
SET(FemResult_SRCS
femresult/__init__.py
femresult/resulttools.py
)
SET(FemSolver_SRCS
femsolver/__init__.py
femsolver/equationbase.py
femsolver/report.py
femsolver/reportdialog.py
femsolver/run.py
femsolver/settings.py
femsolver/signal.py
femsolver/solver_taskpanel.py
femsolver/solverbase.py
femsolver/task.py
femsolver/writerbase.py
)
SET(FemSolverCalculix_SRCS
femsolver/calculix/__init__.py
femsolver/calculix/solver.py
femsolver/calculix/tasks.py
femsolver/calculix/writer.py
)
SET(FemSolverElmer_SRCS
femsolver/elmer/__init__.py
femsolver/elmer/sifio.py
femsolver/elmer/solver.py
femsolver/elmer/tasks.py
femsolver/elmer/writer.py
)
SET(FemSolverElmerEquations_SRCS
femsolver/elmer/equations/__init__.py
femsolver/elmer/equations/electricforce.py
femsolver/elmer/equations/electrostatic.py
femsolver/elmer/equations/elasticity.py
femsolver/elmer/equations/equation.py
femsolver/elmer/equations/flow.py
femsolver/elmer/equations/flux.py
femsolver/elmer/equations/heat.py
femsolver/elmer/equations/linear.py
femsolver/elmer/equations/nonlinear.py
)
SET(FemSolverFenics_SRCS
femsolver/fenics/__init__.py
femsolver/fenics/fenics_tools.py
)
SET(FemSolverZ88_SRCS
femsolver/z88/__init__.py
femsolver/z88/solver.py
femsolver/z88/tasks.py
femsolver/z88/writer.py
)
SET(FemTests_SRCS
femtest/__init__.py
femtest/test_commands.sh
femtest/test_information.md
)
SET(FemTestsApp_SRCS
femtest/app/__init__.py
femtest/app/support_utils.py
femtest/app/test_ccxtools.py
femtest/app/test_common.py
femtest/app/test_femimport.py
femtest/app/test_material.py
femtest/app/test_mesh.py
femtest/app/test_object.py
femtest/app/test_open.py
femtest/app/test_result.py
femtest/app/test_solver_calculix.py
femtest/app/test_solver_elmer.py
)
SET(FemTestsFiles_SRCS
femtest/data/__init__.py
)
SET(FemTestsCcx_SRCS
femtest/data/ccx/__init__.py
femtest/data/ccx/canti_ccx_faceload_hexa20.inp
femtest/data/ccx/constraint_contact_shell_shell.FCStd
femtest/data/ccx/constraint_contact_shell_shell.inp
femtest/data/ccx/constraint_contact_solid_solid.FCStd
femtest/data/ccx/constraint_contact_solid_solid.inp
femtest/data/ccx/constraint_sectionprint.inp
femtest/data/ccx/constraint_tie.inp
femtest/data/ccx/cube_frequency.inp
femtest/data/ccx/cube_frequency.dat
femtest/data/ccx/cube_frequency.frd
femtest/data/ccx/cube_frequency_expected_values
femtest/data/ccx/cube_frequency.FCStd
femtest/data/ccx/cube_static.inp
femtest/data/ccx/cube_static.dat
femtest/data/ccx/cube_static.frd
femtest/data/ccx/cube_static_expected_values
femtest/data/ccx/cube_static.FCStd
femtest/data/ccx/cube.FCStd
femtest/data/ccx/mat_multiple.inp
femtest/data/ccx/mat_nonlinear.inp
femtest/data/ccx/spine_thermomech.inp
femtest/data/ccx/spine_thermomech.dat
femtest/data/ccx/spine_thermomech.frd
femtest/data/ccx/spine_thermomech_expected_values
femtest/data/ccx/spine_thermomech.FCStd
femtest/data/ccx/Flow1D_thermomech.inp
femtest/data/ccx/Flow1D_thermomech.dat
femtest/data/ccx/Flow1D_thermomech.frd
femtest/data/ccx/Flow1D_thermomech_expected_values
femtest/data/ccx/Flow1D_thermomech_inout_nodes.txt
femtest/data/ccx/Flow1D_thermomech.FCStd
femtest/data/ccx/thermomech_bimetall.inp
)
SET(FemTestsElmer_SRCS
femtest/data/elmer/__init__.py
femtest/data/elmer/case.sif
femtest/data/elmer/group_mesh.geo
femtest/data/elmer/ELMERSOLVER_STARTINFO
)
SET(FemTestsMesh_SRCS
femtest/data/mesh/__init__.py
femtest/data/mesh/tetra10_mesh.inp
femtest/data/mesh/tetra10_mesh.unv
femtest/data/mesh/tetra10_mesh.vtk
femtest/data/mesh/tetra10_mesh.yml
femtest/data/mesh/tetra10_mesh.z88
)
SET(FemTestsOpen_SRCS
femtest/data/open/__init__.py
femtest/data/open/all_objects_de9b3fb438.FCStd
)
SET(FemTools_SRCS
femtools/__init__.py
femtools/ccxtools.py
femtools/checksanalysis.py
femtools/constants.py
femtools/errors.py
femtools/femutils.py
femtools/geomtools.py
femtools/membertools.py
femtools/migrate_app.py
femtools/tokrules.py
)
SET(FemAllScripts
${FemBaseModules_SRCS}
${FemCommands_SRCS}
${FemExamples_SRCS}
${FemExampleMeshes_SRCS}
${FemInOut_SRCS}
${FemMesh_SRCS}
${FemObjects_SRCS}
${FemResult_SRCS}
${FemSolver_SRCS}
${FemSolverCalculix_SRCS}
${FemSolverElmer_SRCS}
${FemSolverElmerEquations_SRCS}
${FemSolverFenics_SRCS}
${FemSolverZ88_SRCS}
${FemTests_SRCS}
${FemTestsApp_SRCS}
${FemTestsFiles_SRCS}
${FemTestsCcx_SRCS}
${FemTestsElmer_SRCS}
${FemTestsMesh_SRCS}
${FemTestsOpen_SRCS}
${FemTools_SRCS}
)
ADD_CUSTOM_TARGET(FemScriptsTarget ALL
SOURCES ${FemAllScripts}
)
fc_copy_sources(FemScriptsTarget "${CMAKE_BINARY_DIR}/Mod/Fem" ${FemAllScripts})
# install directories for Python packages (for make install)
INSTALL(FILES ${FemBaseModules_SRCS} DESTINATION Mod/Fem)
INSTALL(FILES ${FemCommands_SRCS} DESTINATION Mod/Fem/femcommands)
INSTALL(FILES ${FemExamples_SRCS} DESTINATION Mod/Fem/femexamples)
INSTALL(FILES ${FemExampleMeshes_SRCS} DESTINATION Mod/Fem/femexamples/meshes)
INSTALL(FILES ${FemInOut_SRCS} DESTINATION Mod/Fem/feminout)
INSTALL(FILES ${FemMesh_SRCS} DESTINATION Mod/Fem/femmesh)
INSTALL(FILES ${FemObjects_SRCS} DESTINATION Mod/Fem/femobjects)
INSTALL(FILES ${FemResult_SRCS} DESTINATION Mod/Fem/femresult)
INSTALL(FILES ${FemSolver_SRCS} DESTINATION Mod/Fem/femsolver)
INSTALL(FILES ${FemSolverCalculix_SRCS} DESTINATION Mod/Fem/femsolver/calculix)
INSTALL(FILES ${FemSolverElmer_SRCS} DESTINATION Mod/Fem/femsolver/elmer)
INSTALL(FILES ${FemSolverElmerEquations_SRCS} DESTINATION Mod/Fem/femsolver/elmer/equations)
INSTALL(FILES ${FemSolverFenics_SRCS} DESTINATION Mod/Fem/femsolver/fenics)
INSTALL(FILES ${FemSolverZ88_SRCS} DESTINATION Mod/Fem/femsolver/z88)
INSTALL(FILES ${FemTests_SRCS} DESTINATION Mod/Fem/femtest)
INSTALL(FILES ${FemTestsApp_SRCS} DESTINATION Mod/Fem/femtest/app)
INSTALL(FILES ${FemTestsFiles_SRCS} DESTINATION Mod/Fem/femtest/data)
INSTALL(FILES ${FemTestsCcx_SRCS} DESTINATION Mod/Fem/femtest/data/ccx)
INSTALL(FILES ${FemTestsElmer_SRCS} DESTINATION Mod/Fem/femtest/data/elmer)
INSTALL(FILES ${FemTestsMesh_SRCS} DESTINATION Mod/Fem/femtest/data/mesh)
INSTALL(FILES ${FemTestsOpen_SRCS} DESTINATION Mod/Fem/femtest/data/open)
INSTALL(FILES ${FemTools_SRCS} DESTINATION Mod/Fem/femtools)
# ************************************************************************************************
# ****** Python Gui packages and modules *********************************************************
# ************************************************************************************************
SET(FemGuiBaseModules_SRCS
TestFemGui.py
)
SET(FemGuiObjects_SRCS
femguiobjects/__init__.py
femguiobjects/readme.md
)
SET(FemGuiTaskPanels_SRCS
femtaskpanels/__init__.py
femtaskpanels/task_constraint_electrostaticpotential.py
femtaskpanels/task_constraint_flowvelocity.py
femtaskpanels/task_constraint_initialflowvelocity.py
femtaskpanels/task_constraint_sectionprint.py
femtaskpanels/task_constraint_tie.py
femtaskpanels/task_element_fluid1D.py
femtaskpanels/task_element_geometry1D.py
femtaskpanels/task_element_geometry2D.py
femtaskpanels/task_element_rotation1D.py
femtaskpanels/task_material_common.py
femtaskpanels/task_material_reinforced.py
femtaskpanels/task_mesh_boundarylayer.py
femtaskpanels/task_mesh_gmsh.py
femtaskpanels/task_mesh_group.py
femtaskpanels/task_mesh_region.py
femtaskpanels/task_result_mechanical.py
femtaskpanels/task_solver_ccxtools.py
)
SET(FemGuiTests_SRCS
femtest/gui/__init__.py
femtest/gui/test_open.py
)
SET(FemGuiUtils_SRCS
femguiutils/__init__.py
femguiutils/migrate_gui.py
femguiutils/selection_widgets.py
)
SET(FemGuiViewProvider_SRCS
femviewprovider/__init__.py
femviewprovider/view_base_femconstraint.py
femviewprovider/view_base_femobject.py
femviewprovider/view_constant_vacuumpermittivity.py
femviewprovider/view_constraint_bodyheatsource.py
femviewprovider/view_constraint_electrostaticpotential.py
femviewprovider/view_constraint_flowvelocity.py
femviewprovider/view_constraint_initialflowvelocity.py
femviewprovider/view_constraint_sectionprint.py
femviewprovider/view_constraint_selfweight.py
femviewprovider/view_constraint_tie.py
femviewprovider/view_element_fluid1D.py
femviewprovider/view_element_geometry1D.py
femviewprovider/view_element_geometry2D.py
femviewprovider/view_element_rotation1D.py
femviewprovider/view_material_common.py
femviewprovider/view_material_mechanicalnonlinear.py
femviewprovider/view_material_reinforced.py
femviewprovider/view_mesh_boundarylayer.py
femviewprovider/view_mesh_gmsh.py
femviewprovider/view_mesh_group.py
femviewprovider/view_mesh_region.py
femviewprovider/view_mesh_result.py
femviewprovider/view_result_mechanical.py
femviewprovider/view_solver_ccxtools.py
)
SET(FemAllGuiScripts
${FemGuiBaseModules_SRCS}
${FemGuiObjects_SRCS}
${FemGuiTaskPanels_SRCS}
${FemGuiTests_SRCS}
${FemGuiUtils_SRCS}
${FemGuiViewProvider_SRCS}
)
if(BUILD_GUI)
ADD_CUSTOM_TARGET(FemGuiScriptsTarget ALL
SOURCES ${FemAllGuiScripts}
)
fc_copy_sources(FemGuiScriptsTarget "${CMAKE_BINARY_DIR}/Mod/Fem" ${FemAllGuiScripts})
# install directories for Python packages (for make install)
INSTALL(FILES ${FemGuiBaseModules_SRCS} DESTINATION Mod/Fem/)
INSTALL(FILES ${FemGuiObjects_SRCS} DESTINATION Mod/Fem/femguiobjects/)
INSTALL(FILES ${FemGuiTaskPanels_SRCS} DESTINATION Mod/Fem/femtaskpanels/)
INSTALL(FILES ${FemGuiTests_SRCS} DESTINATION Mod/Fem/femtest/gui/)
INSTALL(FILES ${FemGuiUtils_SRCS} DESTINATION Mod/Fem/femguiutils/)
INSTALL(FILES ${FemGuiViewProvider_SRCS} DESTINATION Mod/Fem/femviewprovider/)
endif(BUILD_GUI)