diff --git a/HySoP/CMake b/HySoP/CMake deleted file mode 120000 index 2a271a9f072593cf0f7de2713322f58cdc41f6e5..0000000000000000000000000000000000000000 --- a/HySoP/CMake +++ /dev/null @@ -1 +0,0 @@ -../CMake \ No newline at end of file diff --git a/HySoP/CMakeLists.txt b/HySoP/CMakeLists.txt index 5f606dbfdb77762d9dc290169dd3c69a0cf06437..3aed93540cbd0a1c9679139ea4f43330fc0b25f0 100644 --- a/HySoP/CMakeLists.txt +++ b/HySoP/CMakeLists.txt @@ -63,6 +63,13 @@ endif(WITH_TESTS) # We search for libraries Parmes depends on and # set the compile/link conf (-I and -L opt) +#Install dir for python (default = --user) +execute_process( + COMMAND python -c "import site ; print site.USER_SITE" + OUTPUT_VARIABLE ${PROJECT_NAME}_INSTALL_DIR) +string(STRIP ${${PROJECT_NAME}_INSTALL_DIR} ${PROJECT_NAME}_INSTALL_DIR) +set(CMAKE_INSTALL_PREFIX ${${PROJECT_NAME}_INSTALL_DIR}/${PROJECT_NAME}) + set(PARMES_LIBRARY_NAME parmes) set(PACKAGE_NAME Parmes) add_subdirectory(src) @@ -74,13 +81,6 @@ if(EXISTS ${CMAKE_SOURCE_DIR}/setup.py.in) configure_file(setup.py.in setup.py) endif() - -#Install dir for python (default = --user) -execute_process( - COMMAND python -c "import site ; print site.USER_SITE" - OUTPUT_VARIABLE ${PROJECT_NAME}_INSTALL_DIR) -string(STRIP ${${PROJECT_NAME}_INSTALL_DIR} ${PROJECT_NAME}_INSTALL_DIR) -set(CMAKE_INSTALL_PREFIX ${${PROJECT_NAME}_INSTALL_DIR}) # The file __init__.py will be generated from __init__.py.in. if(EXISTS ${CMAKE_SOURCE_DIR}/parmepy/__init__.py.in) message(STATUS "Generate __init__.py file ...") @@ -94,8 +94,10 @@ set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES ${CMAKE_BINARY_D ADD_CUSTOM_TARGET(python-build ALL COMMAND python ${CMAKE_CURRENT_BINARY_DIR}/setup.py build config_fc --f90exec=${CMAKE_Fortran_COMPILER} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "build parmepy package") +# To install python package AND parmes library and modules ADD_CUSTOM_TARGET(python-install COMMAND python ${CMAKE_CURRENT_BINARY_DIR}/setup.py install --user config_fc --f90exec=${CMAKE_Fortran_COMPILER} - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "build/install parmepy package") + COMMAND make install + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "build/install parmepy package") ADD_CUSTOM_TARGET(python-cleaninstall COMMAND rm -rf ${${PROJECT_NAME}_INSTALL_DIR}/${PROJECT_NAME}* COMMENT "remove parmepy package and its dependencies") @@ -103,6 +105,7 @@ ADD_CUSTOM_TARGET(python-cleaninstall COMMAND rm -rf ${${PROJECT_NAME}_INSTALL_D add_dependencies(python-build ${PARMES_LIBRARY_NAME}) add_dependencies(python-install ${PARMES_LIBRARY_NAME}) + # ============= RPATH ============= # Concerning rpath see for example http://www.itk.org/Wiki/CMake_RPATH_handling @@ -111,7 +114,7 @@ add_dependencies(python-install ${PARMES_LIBRARY_NAME}) set(CMAKE_SKIP_BUILD_RPATH FALSE) # when building, don't use the install RPATH already # (but later on when installing) -set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) +set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) # the RPATH to be used when installing set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") # add the automatically determined parts of the RPATH diff --git a/HySoP/DoxyConf/parmes.doxyfile b/HySoP/DoxyConf/parmes.doxyfile index 10e86296cdd213c169308b6e48efd4823e577442..3fc34f2d72df9022e0bd70641893c85df3c43605 100644 --- a/HySoP/DoxyConf/parmes.doxyfile +++ b/HySoP/DoxyConf/parmes.doxyfile @@ -1,4 +1,4 @@ -# Doxyfile 1.8.1.1 +# Doxyfile 1.7.3 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project @@ -22,9 +22,8 @@ DOXYFILE_ENCODING = UTF-8 -# The PROJECT_NAME tag is a single word (or sequence of words) that should -# identify the project. Note that if you do not use Doxywizard you need -# to put quotes around the project name if it contains spaces. +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. PROJECT_NAME = ParMePy @@ -34,8 +33,8 @@ PROJECT_NAME = ParMePy PROJECT_NUMBER = 1.0.0 -# Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer # a quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = "Particular Methods simulation on hybrid architectures" @@ -195,13 +194,6 @@ TAB_SIZE = 8 ALIASES = -# This tag can be used to specify a number of word-keyword mappings (TCL only). -# A mapping has the form "name=value". For example adding -# "class=itcl::class" will allow you to use the command class in the -# itcl::class meaning. - -TCL_SUBST = - # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list @@ -220,7 +212,7 @@ OPTIMIZE_OUTPUT_JAVA = NO # sources only. Doxygen will then generate output that is more tailored for # Fortran. -OPTIMIZE_FOR_FORTRAN = YES +OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for @@ -240,15 +232,6 @@ OPTIMIZE_OUTPUT_VHDL = NO EXTENSION_MAPPING = -# If MARKDOWN_SUPPORT is enabled (the default) then doxygen pre-processes all -# comments according to the Markdown format, which allows for more readable -# documentation. See http://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you -# can mix doxygen, HTML, and XML commands with Markdown formatting. -# Disable only in case of backward compatibilities issues. - -MARKDOWN_SUPPORT = YES - # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and @@ -293,22 +276,6 @@ DISTRIBUTE_GROUP_DOC = NO SUBGROUPING = YES -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and -# unions are shown inside the group in which they are included (e.g. using -# @ingroup) instead of on a separate page (for HTML and Man pages) or -# section (for LaTeX and RTF). - -INLINE_GROUPED_CLASSES = NO - -# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and -# unions with only public data fields will be shown inline in the documentation -# of the scope in which they are defined (i.e. file, namespace, or group -# documentation), provided this scope is documented. If set to NO (the default), -# structs, classes, and unions are shown on a separate page (for HTML and Man -# pages) or section (for LaTeX and RTF). - -INLINE_SIMPLE_STRUCTS = NO - # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct @@ -331,21 +298,10 @@ TYPEDEF_HIDES_STRUCT = NO # a logarithmic scale so increasing the size by one will roughly double the # memory usage. The cache size is given by this formula: # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, -# corresponding to a cache size of 2^16 = 65536 symbols. +# corresponding to a cache size of 2^16 = 65536 symbols SYMBOL_CACHE_SIZE = 0 -# Similar to the SYMBOL_CACHE_SIZE the size of the symbol lookup cache can be -# set using LOOKUP_CACHE_SIZE. This cache is used to resolve symbols given -# their name and scope. Since this can be an expensive process and often the -# same symbol appear multiple times in the code, doxygen keeps a cache of -# pre-resolved symbols. If the cache is too small doxygen will become slower. -# If the cache is too large, memory is wasted. The cache size is given by this -# formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range is 0..9, the default is 0, -# corresponding to a cache size of 2^16 = 65536 symbols. - -LOOKUP_CACHE_SIZE = 0 - #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- @@ -362,11 +318,6 @@ EXTRACT_ALL = YES EXTRACT_PRIVATE = YES -# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal -# scope will be included in the documentation. - -EXTRACT_PACKAGE = NO - # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. @@ -500,10 +451,10 @@ SORT_GROUP_NAMES = NO SORT_BY_SCOPE_NAME = YES -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to # do proper type resolution of all parameters of a function it will reject a -# match between the prototype and the implementation of a member function even -# if there is only one candidate or it is obvious which candidate to choose +# match between the prototype and the implementation of a member function even +# if there is only one candidate or it is obvious which candidate to choose # by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen # will still accept a match between prototype and implementation in such cases. @@ -554,6 +505,12 @@ MAX_INITIALIZER_LINES = 39 SHOW_USED_FILES = YES +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. The default is NO. + +SHOW_DIRECTORIES = YES + # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. @@ -578,23 +535,13 @@ FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. To create the layout file +# output files in an output format independent way. The create the layout file # that represents doxygen's defaults, run doxygen with the -l option. # You can optionally specify a file name after the option, if omitted # DoxygenLayout.xml will be used as the name of the layout file. LAYOUT_FILE = -# The CITE_BIB_FILES tag can be used to specify one or more bib files -# containing the references data. This must be a list of .bib files. The -# .bib extension is automatically appended if omitted. Using this command -# requires the bibtex tool to be installed. See also -# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style -# of the bibliography can be controlled using LATEX_BIB_STYLE. To use this -# feature you need bibtex and perl available in the search path. - -CITE_BIB_FILES = - #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- @@ -658,7 +605,7 @@ WARN_LOGFILE = INPUT = ../src/main \ ../src \ ../parmepy \ - ./ + mainpage.doxygen # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is @@ -686,15 +633,13 @@ FILE_PATTERNS = *.doxygen \ RECURSIVE = YES -# The EXCLUDE tag can be used to specify files and/or directories that should be +# The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. -# Note that relative paths are relative to the directory from which doxygen is -# run. +# subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = -# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded # from the input. @@ -759,7 +704,7 @@ INPUT_FILTER = # info on how filters are used. If FILTER_PATTERNS is empty or if # non of the patterns match the file name, INPUT_FILTER is applied. -FILTER_PATTERNS = *.py=/usr/local/bin/doxypy.py +FILTER_PATTERNS = *.py=/Library/Frameworks/EPD64.framework/Versions/7.1/bin/doxypy.py # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source @@ -793,7 +738,7 @@ INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code -# fragments. Normal C, C++ and Fortran comments will always remain visible. +# fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES @@ -876,14 +821,7 @@ HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a -# standard header. Note that when using a custom header you are responsible -# for the proper inclusion of any scripts and style sheets that doxygen -# needs, which is dependent on the configuration options used. -# It is advised to generate a default header using "doxygen -w html -# header.html footer.html stylesheet.css YourConfigFile" and then modify -# that header. Note that the header is subject to change so you typically -# have to redo this when upgrading to a newer version of doxygen or when -# changing the value of configuration settings such as GENERATE_TREEVIEW! +# standard header. HTML_HEADER = @@ -898,21 +836,12 @@ HTML_FOOTER = # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own -# style sheet in the HTML output directory as well, or it will be erased! +# stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or -# other source files which should be copied to the HTML output directory. Note -# that these files will be copied to the base HTML output directory. Use the -# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that -# the files will be copied as-is; there are no commands or markers available. - -HTML_EXTRA_FILES = - # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. -# Doxygen will adjust the colors in the style sheet and background images +# Doxygen will adjust the colors in the stylesheet and background images # according to this color. Hue is specified as an angle on a colorwheel, # see http://en.wikipedia.org/wiki/Hue for more information. # For instance the value 0 represents red, 60 is yellow, 120 is green, @@ -942,23 +871,20 @@ HTML_COLORSTYLE_GAMMA = 124 HTML_TIMESTAMP = YES +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the -# page has loaded. +# page has loaded. For this to work a browser that supports +# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox +# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = NO -# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of -# entries shown in the various tree structured indices initially; the user -# can expand and collapse entries dynamically later on. Doxygen will expand -# the tree to such a level that at most the specified number of entries are -# visible (unless a fully collapsed tree already exceeds this amount). -# So setting the number of entries 1 will produce a full collapsed tree by -# default. 0 is a special value representing an infinite number of entries -# and will result in a full expanded tree by default. - -HTML_INDEX_NUM_ENTRIES = 100 - # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). @@ -1110,32 +1036,33 @@ GENERATE_ECLIPSEHELP = NO ECLIPSE_DOC_ID = org.doxygen.Project -# The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) -# at top of each HTML page. The value NO (the default) enables the index and -# the value YES disables it. Since the tabs have the same information as the -# navigation tree you can set this option to NO if you already set -# GENERATE_TREEVIEW to YES. +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. DISABLE_INDEX = NO +# This tag can be used to set the number of enum values (range [0,1..20]) +# that doxygen will group on one line in the generated HTML documentation. +# Note that a value of 0 will completely suppress the enum values from +# appearing in the overview section. + +ENUM_VALUES_PER_LINE = 4 + # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to YES, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). -# Windows users are probably better off using the HTML help feature. -# Since the tree basically has the same information as the tab index you -# could consider to set DISABLE_INDEX to NO when enabling this option. +# Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = NO -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values -# (range [0,1..20]) that doxygen will group on one line in the generated HTML -# documentation. Note that a value of 0 will completely suppress the enum -# values from appearing in the overview section. +# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, +# and Class Hierarchy pages using a tree view instead of an ordered list. -ENUM_VALUES_PER_LINE = 4 +USE_INLINE_TREES = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree @@ -1168,7 +1095,7 @@ FORMULA_TRANSPARENT = YES # (see http://www.mathjax.org) which uses client side Javascript for the # rendering instead of using prerendered bitmaps. Use this if you do not # have LaTeX installed or if you want to formulas look prettier in the HTML -# output. When enabled you may also need to install MathJax separately and +# output. When enabled you also need to install MathJax separately and # configure the path to it using the MATHJAX_RELPATH option. USE_MATHJAX = YES @@ -1177,18 +1104,13 @@ USE_MATHJAX = YES # HTML output directory using the MATHJAX_RELPATH option. The destination # directory should contain the MathJax.js script. For instance, if the mathjax # directory is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to -# the MathJax Content Delivery Network so you can quickly see the result without -# installing MathJax. However, it is strongly recommended to install a local -# copy of MathJax from http://www.mathjax.org before deployment. +# MATHJAX_RELPATH should be ../mathjax. The default value points to the +# mathjax.org site, so you can quickly see the result without installing +# MathJax, but it is strongly recommended to install a local copy of MathJax +# before deployment. MATHJAX_RELPATH = http://www.mathjax.org/mathjax -# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension -# names that should be enabled during MathJax rendering. - -MATHJAX_EXTENSIONS = - # When the SEARCHENGINE tag is enabled doxygen will generate a search box # for the HTML output. The underlying search engine uses javascript # and DHTML and should work on any modern browser. Note that when using @@ -1262,13 +1184,6 @@ EXTRA_PACKAGES = LATEX_HEADER = -# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for -# the generated latex document. The footer should contain everything after -# the last chapter. If it is left blank doxygen will generate a -# standard footer. Notice: only use this tag if you know what you are doing! - -LATEX_FOOTER = - # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references @@ -1302,12 +1217,6 @@ LATEX_HIDE_INDICES = NO LATEX_SOURCE_CODE = NO -# The LATEX_BIB_STYLE tag can be used to specify the style to use for the -# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See -# http://en.wikipedia.org/wiki/BibTeX for more info. - -LATEX_BIB_STYLE = plain - #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- @@ -1339,7 +1248,7 @@ COMPACT_RTF = NO RTF_HYPERLINKS = NO -# Load style sheet definitions from file. Syntax is similar to doxygen's +# Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. @@ -1482,7 +1391,7 @@ MACRO_EXPANSION = NO EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files -# pointed to by INCLUDE_PATH will be searched when a #include is found. +# in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES @@ -1512,7 +1421,7 @@ PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. -# Use the PREDEFINED tag if you want to use a different macro definition that +# Use the PREDEFINED tag if you want to use a different macro definition that # overrules the definition found in the source code. EXPAND_AS_DEFINED = @@ -1528,16 +1437,20 @@ SKIP_FUNCTION_MACROS = YES # Configuration::additions related to external references #--------------------------------------------------------------------------- -# The TAGFILES option can be used to specify one or more tagfiles. For each -# tag file the location of the external documentation should be added. The -# format of a tag file without this location is as follows: +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # TAGFILES = file1=loc1 "file2 = loc2" ... -# where "loc1" and "loc2" can be relative or absolute paths -# or URLs. Note that each tag file must have a unique name (where the name does -# NOT include the path). If a tag file is not located in the directory in which -# doxygen is run, you must also specify the path to the tagfile here. +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. TAGFILES = @@ -1605,30 +1518,32 @@ HAVE_DOT = YES DOT_NUM_THREADS = 0 -# By default doxygen will use the Helvetica font for all dot files that -# doxygen generates. When you want a differently looking font you can specify -# the font name using DOT_FONTNAME. You need to make sure dot is able to find -# the font, which can be done by putting it in a standard location or by setting -# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the -# directory containing the font. +# By default doxygen will write a font called Helvetica to the output +# directory and reference it in all dot files that doxygen generates. +# When you want a differently looking font you can specify the font name +# using DOT_FONTNAME. You need to make sure dot is able to find the font, +# which can be done by putting it in a standard location or by setting the +# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory +# containing the font. DOT_FONTNAME = Helvetica # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. -DOT_FONTSIZE = 11 +DOT_FONTSIZE = 24 -# By default doxygen will tell dot to use the Helvetica font. -# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to -# set the path where dot can find it. +# By default doxygen will tell dot to use the output directory to look for the +# FreeSans.ttf font (which doxygen will put there itself). If you specify a +# different font using DOT_FONTNAME you can set the path where dot +# can find it using this tag. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the -# CLASS_DIAGRAMS tag to NO. +# the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES @@ -1650,15 +1565,6 @@ GROUP_GRAPHS = YES UML_LOOK = YES -# If the UML_LOOK tag is enabled, the fields and methods are shown inside -# the class node. If there are many fields or methods and many nodes the -# graph may become too big to be useful. The UML_LIMIT_NUM_FIELDS -# threshold limits the number of items for each type to make the size more -# managable. Set this to 0 for no limit. Note that the threshold may be -# exceeded by 50% before the limit is enforced. - -UML_LIMIT_NUM_FIELDS = 0 - # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. @@ -1699,7 +1605,7 @@ CALLER_GRAPH = YES GRAPHICAL_HIERARCHY = YES -# If the DIRECTORY_GRAPH and HAVE_DOT tags are set to YES +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. @@ -1707,26 +1613,15 @@ GRAPHICAL_HIERARCHY = YES DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. Possible values are svg, png, jpg, or gif. -# If left blank png will be used. If you choose svg you need to set -# HTML_FILE_EXTENSION to xhtml in order to make the SVG files -# visible in IE 9+ (other browsers do not have this requirement). +# generated by dot. Possible values are png, svg, gif or svg. +# If left blank png will be used. DOT_IMAGE_FORMAT = png -# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to -# enable generation of interactive SVG images that allow zooming and panning. -# Note that this requires a modern browser other than Internet Explorer. -# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you -# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files -# visible. Older versions of IE do not have SVG support. - -INTERACTIVE_SVG = NO - # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. -DOT_PATH = /opt/local/bin +DOT_PATH = /usr/local/bin # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the diff --git a/HySoP/hysop/__init__.py.in b/HySoP/hysop/__init__.py.in index 9bf57ac7ef0b2b1df2758d947e2a13386bf1f691..4e4aad24f279ae4b701ffc7a79f2a8f6f3099faa 100755 --- a/HySoP/hysop/__init__.py.in +++ b/HySoP/hysop/__init__.py.in @@ -4,26 +4,21 @@ Python package dedicated to flow simulation using particular methods on hybrid architectures (MPI-GPU) """ -__version__ = 1.00 -__all__ = ['Box', 'CartesianTopology', 'ScalarField'] +__version__=1.00 +__all__=['Box','CartesianTopology','ScalarField'] import os import site import mpi4py.MPI as MPI -if 'LD_LIBRARY_PATH' in os.environ: - os.environ['LD_LIBRARY_PATH'] = os.environ['LD_LIBRARY_PATH'] + ':' + "@CMAKE_INSTALL_PREFIX@" -else: - os.environ['LD_LIBRARY_PATH'] = "@CMAKE_INSTALL_PREFIX@" - rank_world = MPI.COMM_WORLD.Get_rank() if(rank_world == 0): - print "Starting @PACKAGE_NAME@ version " + str(__version__) + ".\n" + print "Starting @PACKAGE_NAME@ version "+str(__version__)+".\n" import constants import domain.box -## Box-type physical domain +## Box-type physical domain Box = domain.box.Box ## Cartesian grid @@ -35,23 +30,5 @@ CartesianTopology = fields.topology.CartesianTopology ## Fields import fields.discrete import fields.continuous -import fields.analytical ScalarField = fields.discrete.ScalarField ContinuousField = fields.continuous.ContinuousField -AnalyticalField = fields.analytical.AnalyticalField - -## Operators -import operator.Transport -Transport = operator.Transport.Transport - -## Problem -import problem.problem -Problem = problem.problem.Problem - -## Solver -import ParticularSolvers.basic -ParticularSolver = ParticularSolvers.basic.ParticularSolver - -## Tools -import tools.printer -Printer = tools.printer.Printer diff --git a/HySoP/hysop/domain/grid.py b/HySoP/hysop/domain/grid.py index 6a32f40e480a4ba5de0861b4ab25640455e7e66d..18e284859066dff8b21c43b7cd94f5e237df2103 100644 --- a/HySoP/hysop/domain/grid.py +++ b/HySoP/hysop/domain/grid.py @@ -13,15 +13,14 @@ class CartesianGrid(DiscreteDomain): def __init__(self, resolution, domain): DiscreteDomain.__init__(self, domain) assert(self.dimension == len(resolution)) + ## lowest point of the grid self.origin = domain.origin + ## size of the grid in each direction self.length = domain.length + ## number of points in each direction self.resolution = resolution - self.size = self.length / self.resolution - - ## self.elementNumber = spec - ## self.elementSize = box.length / self.elementNumber - ## ## Grid length. - ## self.length = box.length + ## space step size + self.step = self.length/(self.resolution-1) ## self.axes = [np.asarray(np.arange(self.min[i], self.max[i], self.elementSize[i]), dtype=dtype_real, order=order) for i in xrange(self.dimension)] def update(start): @@ -46,7 +45,7 @@ class CartesianGrid(DiscreteDomain): @param index list : index to get @return point with given index """ - return self.__coords.__getitem__(i) + return self.__coords.__getitem__(index) def __str__(self): """ diff --git a/HySoP/hysop/ParticularSolvers/GPUParticularSolver.py b/HySoP/hysop/particular_solvers/GPUParticularSolver.py similarity index 100% rename from HySoP/hysop/ParticularSolvers/GPUParticularSolver.py rename to HySoP/hysop/particular_solvers/GPUParticularSolver.py diff --git a/HySoP/hysop/ParticularSolvers/GPUParticularSolver_GLRender.py b/HySoP/hysop/particular_solvers/GPUParticularSolver_GLRender.py similarity index 100% rename from HySoP/hysop/ParticularSolvers/GPUParticularSolver_GLRender.py rename to HySoP/hysop/particular_solvers/GPUParticularSolver_GLRender.py diff --git a/HySoP/hysop/ParticularSolvers/__init__.py b/HySoP/hysop/particular_solvers/__init__.py similarity index 100% rename from HySoP/hysop/ParticularSolvers/__init__.py rename to HySoP/hysop/particular_solvers/__init__.py diff --git a/HySoP/hysop/ParticularSolvers/basic.py b/HySoP/hysop/particular_solvers/basic.py similarity index 100% rename from HySoP/hysop/ParticularSolvers/basic.py rename to HySoP/hysop/particular_solvers/basic.py diff --git a/HySoP/hysop/ParticularSolvers/gpu_src.cl b/HySoP/hysop/particular_solvers/gpu_src.cl similarity index 100% rename from HySoP/hysop/ParticularSolvers/gpu_src.cl rename to HySoP/hysop/particular_solvers/gpu_src.cl diff --git a/HySoP/hysop/ParticularSolvers/integrator/__init__.py b/HySoP/hysop/particular_solvers/integrator/__init__.py similarity index 100% rename from HySoP/hysop/ParticularSolvers/integrator/__init__.py rename to HySoP/hysop/particular_solvers/integrator/__init__.py diff --git a/HySoP/hysop/ParticularSolvers/integrator/forward_euler.py b/HySoP/hysop/particular_solvers/integrator/forward_euler.py similarity index 100% rename from HySoP/hysop/ParticularSolvers/integrator/forward_euler.py rename to HySoP/hysop/particular_solvers/integrator/forward_euler.py diff --git a/HySoP/hysop/ParticularSolvers/integrator/integrator.py b/HySoP/hysop/particular_solvers/integrator/integrator.py similarity index 100% rename from HySoP/hysop/ParticularSolvers/integrator/integrator.py rename to HySoP/hysop/particular_solvers/integrator/integrator.py diff --git a/HySoP/hysop/ParticularSolvers/integrator/runge_kutta.py b/HySoP/hysop/particular_solvers/integrator/runge_kutta.py similarity index 100% rename from HySoP/hysop/ParticularSolvers/integrator/runge_kutta.py rename to HySoP/hysop/particular_solvers/integrator/runge_kutta.py diff --git a/HySoP/hysop/ParticularSolvers/interpolation/__init__.py b/HySoP/hysop/particular_solvers/interpolation/__init__.py similarity index 100% rename from HySoP/hysop/ParticularSolvers/interpolation/__init__.py rename to HySoP/hysop/particular_solvers/interpolation/__init__.py diff --git a/HySoP/hysop/ParticularSolvers/interpolation/interpolation.py b/HySoP/hysop/particular_solvers/interpolation/interpolation.py similarity index 100% rename from HySoP/hysop/ParticularSolvers/interpolation/interpolation.py rename to HySoP/hysop/particular_solvers/interpolation/interpolation.py diff --git a/HySoP/hysop/ParticularSolvers/interpolation/linear.py b/HySoP/hysop/particular_solvers/interpolation/linear.py similarity index 100% rename from HySoP/hysop/ParticularSolvers/interpolation/linear.py rename to HySoP/hysop/particular_solvers/interpolation/linear.py diff --git a/HySoP/hysop/ParticularSolvers/remesh/__init__.py b/HySoP/hysop/particular_solvers/remesh/__init__.py similarity index 100% rename from HySoP/hysop/ParticularSolvers/remesh/__init__.py rename to HySoP/hysop/particular_solvers/remesh/__init__.py diff --git a/HySoP/hysop/ParticularSolvers/remesh/lambda1.py b/HySoP/hysop/particular_solvers/remesh/lambda1.py similarity index 100% rename from HySoP/hysop/ParticularSolvers/remesh/lambda1.py rename to HySoP/hysop/particular_solvers/remesh/lambda1.py diff --git a/HySoP/hysop/ParticularSolvers/remesh/lambda2.py b/HySoP/hysop/particular_solvers/remesh/lambda2.py similarity index 100% rename from HySoP/hysop/ParticularSolvers/remesh/lambda2.py rename to HySoP/hysop/particular_solvers/remesh/lambda2.py diff --git a/HySoP/hysop/ParticularSolvers/remesh/m4p.py b/HySoP/hysop/particular_solvers/remesh/m4p.py similarity index 100% rename from HySoP/hysop/ParticularSolvers/remesh/m4p.py rename to HySoP/hysop/particular_solvers/remesh/m4p.py diff --git a/HySoP/hysop/ParticularSolvers/remesh/m6p.py b/HySoP/hysop/particular_solvers/remesh/m6p.py similarity index 100% rename from HySoP/hysop/ParticularSolvers/remesh/m6p.py rename to HySoP/hysop/particular_solvers/remesh/m6p.py diff --git a/HySoP/hysop/ParticularSolvers/remesh/method.py b/HySoP/hysop/particular_solvers/remesh/method.py similarity index 100% rename from HySoP/hysop/ParticularSolvers/remesh/method.py rename to HySoP/hysop/particular_solvers/remesh/method.py diff --git a/HySoP/hysop/ParticularSolvers/solver.py b/HySoP/hysop/particular_solvers/solver.py similarity index 100% rename from HySoP/hysop/ParticularSolvers/solver.py rename to HySoP/hysop/particular_solvers/solver.py diff --git a/HySoP/hysop/scales2py/scales2py.f90 b/HySoP/hysop/scales2py/scales2py.f90 index 6ac09b15b91ddd92f552e02ecd66681f687c418d..74424b08fcca95610d34abc78a28b1c71f347449 100755 --- a/HySoP/hysop/scales2py/scales2py.f90 +++ b/HySoP/hysop/scales2py/scales2py.f90 @@ -25,7 +25,7 @@ implicit none !!integer, parameter :: dim3 = 3 contains - + subroutine cartCreate(dims,groupSize) !integer,intent(in) :: topoDim diff --git a/HySoP/setup.py.in b/HySoP/setup.py.in index 2e931b6cdbd87d3925a974d4612314b91679c1e2..085e204145c536417b166290306e9cb4b43013b1 100644 --- a/HySoP/setup.py.in +++ b/HySoP/setup.py.in @@ -38,6 +38,7 @@ parmeslib = ['@PARMES_LIBRARY_NAME@'] f2py_options = ['--no-lower'] + scales_src = glob.glob('@CMAKE_SOURCE_DIR@/parmepy/scales2py/*.f90') scalesModule = Extension(name='parmepy.scales2py', f2py_options=f2py_options, @@ -48,10 +49,14 @@ scalesModule = Extension(name='parmepy.scales2py', define_macros=[('F2PY_REPORT_ON_ARRAY_COPY', '1')]) ext_modules = [scalesModule] -print ext_modules +test_src = glob.glob('@CMAKE_SOURCE_DIR@/parmepy/testf2py/*.f90') +testf2pyModule=Extension(name='parmepy.testf2py',f2py_options=f2py_options,sources=test_src,include_dirs=parmes_dir, + library_dirs=parmes_libdir,libraries=parmeslib,define_macros = [('F2PY_REPORT_ON_ARRAY_COPY','1')]) + +ext_modules.append(testf2pyModule) -withfftw = "@WITH_FFTW@" +withfftw = "OFF"#"@WITH_FFTW@" if(withfftw is "ON"): fortran_src = glob.glob('@CMAKE_SOURCE_DIR@/parmepy/parmesfftw2py/*.f90') @@ -65,7 +70,6 @@ if(withfftw is "ON"): define_macros=[('F2PY_REPORT_ON_ARRAY_COPY', '1')]) ext_modules.append(parpyModule) -print ext_modules setup(name=name, version='1.0.0', description='Particular Methods implementation in Python', diff --git a/HySoP/src/CMakeLists.txt b/HySoP/src/CMakeLists.txt index f3cc96debddfb63153103a2ec81f8499ed716c52..582270d5878fc493932b962e6b6682bcc26503a4 100644 --- a/HySoP/src/CMakeLists.txt +++ b/HySoP/src/CMakeLists.txt @@ -15,7 +15,7 @@ set(EXE_NAME ${PARMES_LIBRARY_NAME}Run) # Any file in those dirs will be used to create libparmes set(${PARMES_LIBRARY_NAME}_SRCDIRS . - # src/poisson + #poisson #src/interfaces/Fortran2Cpp # src/interfaces/ppm ) @@ -69,7 +69,7 @@ endif (NOT CMAKE_BUILD_TYPE) # Set module files directory (i.e. where .mod will be created) set(CMAKE_Fortran_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/Modules) # Add compilation flags: -append_Fortran_FLAGS("-Wall") +append_Fortran_FLAGS("-Wall -fPIC") # --- MPI --- if(USE_MPI) @@ -163,11 +163,11 @@ include_directories(${CMAKE_Fortran_MODULE_DIRECTORY}) # SYMBOL_NAMESPACE "F2C_") # ============= Creates the library ============= -if(BUILD_SHARED_LIBS) # shared library - add_library(${PARMES_LIBRARY_NAME} SHARED ${${PARMES_LIBRARY_NAME}_SRC}) -else() # static library +#if(BUILD_SHARED_LIBS) # shared library +# add_library(${PARMES_LIBRARY_NAME} SHARED ${${PARMES_LIBRARY_NAME}_SRC}) +#else() # static library add_library(${PARMES_LIBRARY_NAME} STATIC ${${PARMES_LIBRARY_NAME}_SRC}) -endif() +#endif() # Libs to link with PARMES__LIBRARY_NAME target_link_libraries(${PARMES_LIBRARY_NAME} ${LIBS}) diff --git a/HySoP/src/TestFunctions.f90 b/HySoP/src/TestFunctions.f90 index 453c531695eb3800881a694888cf9eed697db660..2013ff5277d0aa45c8a8a6e94a7f3c7f69bd6554 100755 --- a/HySoP/src/TestFunctions.f90 +++ b/HySoP/src/TestFunctions.f90 @@ -270,8 +270,8 @@ contains dom = lower(c_Z)**2+xPos**2 if(abs(dom) < epsilon(dom)) then requiredFlowRate3D = requiredFlowRate3D - lower(c_Z) - else - requiredFlowRate3D = requiredFlowRate3D - lower(1. - radius**2/dom) + else + requiredFlowRate3D = requiredFlowRate3D - lower(c_Z)*(1. - radius**2/dom) end if requiredFlowRate3D = requiredFlowRate3D * uinf *length(c_Y) return @@ -281,12 +281,10 @@ contains !> \f$ \psi(x,y,z) = \left[\begin{array}{c} 0 \\-U_{inf}z(1 - \frac{R^2}{z^2+x^2}) \\ 0 \end{array}\right] \f$ !> i.e. !> \f[ flowRate_{theo} = \left[ -U_{inf}length_y(z - \frac{R^2z}{z^2+x^2})\right]_{lower_z}^{upper_z}\f] - function requiredFlowRate2D(radius,length,lower,upper,uinf) + function requiredFlowRate2D(radius,lower,upper,uinf) !> sphere radius real(mk),intent(in) :: radius - !> domain dimensions - real(mk),dimension(dime),intent(in) :: length !> physical domain lower point real(mk),dimension(dime),intent(in)::lower !> physical domain upper point diff --git a/HySoP/src/main/main.f90 b/HySoP/src/main/main.f90 index 60346001bda9711a067ea4f52c65a61080e878b0..2eca3a4d4a727097ceb9c7d9961f1fa90931348e 100755 --- a/HySoP/src/main/main.f90 +++ b/HySoP/src/main/main.f90 @@ -2,6 +2,9 @@ program mainParmes use client_data +use advec +use solverpoisson + implicit none integer :: info @@ -14,6 +17,9 @@ call MPI_COMM_SIZE(MPI_COMM_WORLD,nbprocs,info) print *, "hello ..." +call testpoisson() +!!call toto(4) + call MPI_Finalize(info) diff --git a/HySoP/src/poisson/Poisson.f90 b/HySoP/src/poisson/Poisson.f90 index 51773bef0f5f8e81c58da839c08ff0dfaa856d73..9a4236c68cdfeb9878ccf4536714ff8b1c130d32 100755 --- a/HySoP/src/poisson/Poisson.f90 +++ b/HySoP/src/poisson/Poisson.f90 @@ -40,20 +40,27 @@ module poisson integer :: meshFFTid contains + subroutine testpoisson() + + print *, "this is poisson ..." + + end subroutine testpoisson + + !> Prepare fftw plans for solvers based on fft. !! This routine is based on fftw-mpi and requires f2003 C-fortran capabilities. subroutine initFFTW2D(resolution,lengths) !> GLOBAL resolution - integer, dimension(:), pointer :: resolution + integer, dimension(dime), intent(in) :: resolution !> Length of the domain - real(mk),dimension(dim3),intent(in) :: lengths + real(mk),dimension(dime),intent(in) :: lengths integer(C_INTPTR_T) :: i,j,alloc_local,nx2,nz !! init fftw-mpi context call fftw_mpi_init() - + !! Set fft resolution (global) !! We can not use resolution in fft_mpi routines because C_INTPTR_T type is required !! Note also that we need to set boundary values to enforce periodicity @@ -185,7 +192,7 @@ contains integer(C_INTPTR_T) :: i, j ! transfer data from fieldIn on initial topology to rin on fft topology - call mapToFFT(fieldIn,rin,topoid,meshid) + !! call mapToFFT(fieldIn,rin,topoid,meshid) ! compute transform (as many times as desired) call fftw_execute_dft_r2c(planr2c,rin,cout)