Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • osander/dune-gfe
  • lnebel/dune-gfe
  • spraetor/dune-gfe
3 results
Show changes
Commits on Source (2543)
Showing with 555 additions and 898 deletions
Makefile
Makefile.in
config.*
configure
aclocal.m4
autom4te.cache
depcomp
install-sh
missing
mkinstalldirs
libtool
dune.pc
semantic.cache
stamp-h1
html
.deps
.libs
# First use of uncrustify, with the vanilla config from dune-project.org
d13f34469065230dd86e63733e4dc8d1f775acfb
# Cleanup after having moved everything into the Dune::GFE namespace
c2eb8dacb5885363c30c2b7373c479ed9c66ac12
# ignore all build folders
/build*/
# ignore backup files
*~
# ignore Python files
*.pyc
---
variables:
DUNECI_CMAKE_FLAGS: "-DDUNE_PYTHON_FORCE_PYTHON3=TRUE"
before_script: &before
- duneci-install-module https://gitlab.dune-project.org/fufem/dune-matrix-vector.git
- duneci-install-module https://git.imp.fu-berlin.de/agnumpde/dune-solvers.git
- duneci-install-module https://gitlab.dune-project.org/extensions/dune-vtk.git
- duneci-install-module https://gitlab.dune-project.org/fufem/dune-fufem.git
- duneci-install-module https://gitlab.dune-project.org/extensions/dune-gmsh4
# Tests with the 2.9 release. That's the one in Debian bookworm
#--------------------------------------------------------------------
dune:2.9 gcc:
variables:
DUNECI_BRANCH: releases/2.9
image: registry.dune-project.org/docker/ci/dune:2.9-debian-11-gcc-10-20
before_script:
- *before
script: duneci-standard-test
dune:2.9 dune-elasticity gcc:
variables:
DUNECI_BRANCH: releases/2.9
image: registry.dune-project.org/docker/ci/dune:2.9-debian-11-gcc-10-20
before_script:
- *before
- duneci-install-module https://gitlab.mn.tu-dresden.de/ag-sander/dune/dune-elasticity.git
script: duneci-standard-test
# Tests with the 2.10 release. That's the one in Debian trixie
#--------------------------------------------------------------------
dune:2.10 gcc-10:
image: registry.dune-project.org/docker/ci/dune:2.10-debian-11-gcc-10-20
variables:
DUNECI_BRANCH: releases/2.10
before_script:
- *before
script: duneci-standard-test
dune:2.10 dune-elasticity gcc-10:
image: registry.dune-project.org/docker/ci/dune:2.10-debian-11-gcc-10-20
variables:
DUNECI_BRANCH: releases/2.10
before_script:
- *before
- duneci-install-module https://gitlab.mn.tu-dresden.de/ag-sander/dune/dune-elasticity.git
script: duneci-standard-test
dune:2.10 dune-curvedgrid dune-foamgrid gcc-10 C++20:
image: registry.dune-project.org/docker/ci/dune:2.10-debian-11-gcc-10-20
variables:
DUNECI_BRANCH: releases/2.10
before_script:
- *before
- duneci-install-module https://gitlab.dune-project.org/extensions/dune-curvedgeometry.git
- duneci-install-module https://gitlab.dune-project.org/extensions/dune-curvedgrid.git
- duneci-install-module https://gitlab.dune-project.org/extensions/dune-foamgrid.git
script: duneci-standard-test
dune:2.10 dune-parmg dune-curvedgrid dune-foamgrid dune-elasticity gcc-10 C++20:
image: registry.dune-project.org/docker/ci/dune:2.10-debian-11-gcc-10-20
variables:
DUNECI_BRANCH: releases/2.10
before_script:
- *before
- duneci-install-module https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.mn.tu-dresden.de/paraphase/dune-parmg.git
- duneci-install-module https://gitlab.dune-project.org/extensions/dune-curvedgeometry.git
- duneci-install-module https://gitlab.dune-project.org/extensions/dune-curvedgrid.git
- duneci-install-module https://gitlab.dune-project.org/extensions/dune-foamgrid.git
- duneci-install-module https://gitlab.mn.tu-dresden.de/ag-sander/dune/dune-elasticity.git
script: duneci-standard-test
# Full tests again, but this time with clang.
dune:2.10 dune-parmg dune-curvedgrid dune-foamgrid dune-elasticity clang-11 C++20:
image: registry.dune-project.org/docker/ci/dune:2.10-debian-11-clang-11-20
variables:
DUNECI_BRANCH: releases/2.10
before_script:
- *before
- duneci-install-module https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.mn.tu-dresden.de/paraphase/dune-parmg.git
- duneci-install-module https://gitlab.dune-project.org/extensions/dune-curvedgeometry.git
- duneci-install-module https://gitlab.dune-project.org/extensions/dune-curvedgrid.git
- duneci-install-module https://gitlab.dune-project.org/extensions/dune-foamgrid.git
- duneci-install-module https://gitlab.mn.tu-dresden.de/ag-sander/dune/dune-elasticity.git
script: duneci-standard-test
# Tests with the git master branch
# Some, but not all optional dependencies are made available.
#------------------------------------------------------------------
dune:git gcc-10 C++20:
image: registry.dune-project.org/docker/ci/dune:git-debian-11-gcc-10-20
before_script:
- *before
script: duneci-standard-test
dune:git clang-11 C++20:
image: registry.dune-project.org/docker/ci/dune:git-debian-11-clang-11-20
before_script:
- *before
script: duneci-standard-test
dune:git dune-elasticity gcc-10 C++20:
image: registry.dune-project.org/docker/ci/dune:git-debian-11-gcc-10-20
before_script:
- *before
- duneci-install-module https://gitlab.mn.tu-dresden.de/ag-sander/dune/dune-elasticity.git
script: duneci-standard-test
dune:git dune-curvedgrid dune-foamgrid gcc-10 C++20:
image: registry.dune-project.org/docker/ci/dune:git-debian-11-gcc-10-20
before_script:
- *before
- duneci-install-module https://gitlab.dune-project.org/extensions/dune-curvedgeometry.git
- duneci-install-module https://gitlab.dune-project.org/extensions/dune-curvedgrid.git
- duneci-install-module https://gitlab.dune-project.org/extensions/dune-foamgrid.git
script: duneci-standard-test
# Tests with all optional dependencies
#-------------------------------------------
dune:git dune-parmg dune-curvedgrid dune-foamgrid dune-elasticity gcc-10 C++20:
image: registry.dune-project.org/docker/ci/dune:git-debian-11-gcc-10-20
before_script:
- *before
- duneci-install-module https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.mn.tu-dresden.de/paraphase/dune-parmg.git
- duneci-install-module https://gitlab.dune-project.org/extensions/dune-curvedgeometry.git
- duneci-install-module https://gitlab.dune-project.org/extensions/dune-curvedgrid.git
- duneci-install-module https://gitlab.dune-project.org/extensions/dune-foamgrid.git
- duneci-install-module https://gitlab.mn.tu-dresden.de/ag-sander/dune/dune-elasticity.git
script: duneci-standard-test
dune:git dune-parmg dune-curvedgrid dune-foamgrid dune-elasticity clang-11 C++20:
image: registry.dune-project.org/docker/ci/dune:git-debian-11-clang-11-20
before_script:
- *before
- duneci-install-module https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.mn.tu-dresden.de/paraphase/dune-parmg.git
- duneci-install-module https://gitlab.dune-project.org/extensions/dune-curvedgeometry.git
- duneci-install-module https://gitlab.dune-project.org/extensions/dune-curvedgrid.git
- duneci-install-module https://gitlab.dune-project.org/extensions/dune-foamgrid.git
- duneci-install-module https://gitlab.mn.tu-dresden.de/ag-sander/dune/dune-elasticity.git
script: duneci-standard-test
# Check for spelling mistakes in text
code-spelling-check:
stage: .pre
# Avoid the global 'before_script'
before_script: ""
image: registry.dune-project.org/docker/ci/debian:11
script:
- codespell
--ignore-words-list numer
# Verify code-formatting rules
code-formatting-check:
stage: .pre
# Avoid the global 'before_script'
before_script: ""
image: registry.dune-project.org/docker/ci/debian:11
script:
# Format all *.cc and *.hh files using the uncrustify tool
# We ignore the return value of 'uncrustify', because it is
# apparently unreliable, and returns 'failure' without a reason.
- uncrustify -l CPP -c dune-uncrustify.cfg --no-backup `find -name "*.cc" -o -name "*.hh"` || true
# Did anything change? That would indicate a violation of the formatting rules
# But before, work around an issue where git doesn't recognize the source tree as a git directory.
# See https://forum.gitlab.com/t/ci-cd-job-git-diff/76666
- git config --global --add safe.directory "$(pwd)"
- git diff --exit-code
# Master
- The `SimoFoxEnergy` class (formerly known as `SimoFoxEnergyLocalStiffness`)
does not accept a surface load density anymore. Use the
`NeumannEnergy` class for assembling surface loads.
- The class `LocalIntegralEnergy` now does not construct the local interpolation
rule itself anymore. Rather, it expects to be given one in its constructor.
This will allow interpolation rules with state.
- The same holds for `CosseratRodEnergy`. Unfortunately, that move
implies that `CosseratRodEnergy` gains an extra template argument
which specifies the GFE function used to implement the reference
configuration.
- The classes `LocalGeodesicFEFunction` and `LocalProjectedFEFunction`
now take a `dune-functions` basis as their first arguments, instead
of a `LocalFiniteElement`. In addition, they need to be given an object
of this type in the constructor. This is the basis to be used for
interpolation weights (for `LocalGeodesicFEFunction`) and for
interpolating in the embedding space (for `LocalProjectedFEFunction`).
- The entire code is now in the `Dune::GFE` namespace.
- Remove the files `localgfetestfunctionbasis.hh` and `localtangentfefunction.hh`.
They were never used for anything at all, I and currently wouldn't know
what to use them for, either.
- All implementations of functions have been move to a `functions` subdirectory.
- The `LocalDensity` class now has a template parameter `ElementOrIntersection`,
which replaces the parameter `Position`. As the name says, this parameter
has to be a grid element, or a grid intersection. As it turned out,
just depending on the position type of the integration domain was not enough.
- The `LocalDensity` class now has a `bind` method, which binds the density
to a given element or intersection. This is necessary, for example, to in turn
bind coefficient functions that the density may own.
# Release 2.10 (2024-12-29)
- The module `dune-elasticity` has been downgraded from a required
dependency to an optional dependency. It is currently only needed
by the `film-on-substrate.cc` program.
- `cosserat-rod.cc` (formerly `rod3d.cc`) now reads the reference configuration
and the initial iterate from the Python file.
- The file `rod3d.cc` has been renamed to `cosserat-rod.cc`,
to better reflect what it does.
- In the `BulkCosseratDensity` class: Make the type of curvature
tensor controllable at run-time (previously, ugly preprocessor switches
where used). Among its parameters `BulkCosseratDensity` now expects
a string `curvatureType`, which has to take one of the values `norm`,
`curl`, or `wryness`.
- Building `dune-gfe` now requires Dune 2.9 or newer. Older configurations
have not gotten CI-tested for quite a while, anyway.
- The `RigidBodyMotion` class has been removed. Please use
`ProductManifold<RealTuple,Rotation>` from now on.
- You can use `std::tuple_element` and `std::tuple_size` with
`ProductManifold`s now.
- Building the module requires CMake version 3.16 now, to be in line
with the current core modules.
- All files that implement densities have been put into the
`densities` subdirectory.
- All files that implement assemblers have been moved to the
`assemblers` subdirectory.
- All files that implement target spaces have been moved to the
`spaces` subdirectory.
- The file `periodic1dpq1nodalbasis.hh` has been removed. Use `periodicbasis.hh`
from the `dune-functions` module in the future.
- Replaced the class `GlobalGeodesicFEFunction` by a new one called
`GlobalGFEFunction`. There are two important changes: First of all,
the new class implements the `dune-functions` interface rather than
the deprecated one based on inheritance from `VirtualGridViewFunction`.
Secondly, the new class does not hard-wire geodesic interpolation
anymore. Rather, you can give it interpolation classes which then
govern how interpolation is done.
- Added dune-gmsh4 as a dependency
- Build cosserat-continuum for different combinations of LFE-orders and
GFE-orders, the respective program is called
cosserat-continuum-Xd-in-Xd-LFE_ORDER-GFE_ORDER
TODO: This is now set during compile time, but shall be changed to be
set during runtime.
- Do not scale the density functions with the thickness to avoid confusion
since some densities need to be scaled and some do not need to be scaled
with the thickness depending on the dimension of the grid, their direction
and their kind (Neumann or volume load).
- Fix bug in the `RealTuple::log` method: Calling `log(a,b)`returned `a-b`
instead of `b-a`.
- Fix the return value of `ProductManifold::log`: It was `TangentVector`,
but now it is `EmbeddedTangentVector`.
- The `RigidBodyMotion` class has a `log` method now.
- The method `Rotation<3>::log` now returns an `EmbeddedTangentVector`
instead of a `SkewMatrix`. This is consistent with the other manifold
implementations.
- Deprecate the method `RigidBodyMotion::difference`; the method
`RigidBodyMotion::log`. Watch out: The `difference` method was buggy!
See https://gitlab.mn.tu-dresden.de/osander/dune-gfe/-/merge_requests/2
for details.
cmake_minimum_required(VERSION 3.16)
project(dune-gfe CXX)
if(NOT (dune-common_DIR OR dune-common_ROOT OR
"${CMAKE_PREFIX_PATH}" MATCHES ".*dune-common.*"))
string(REPLACE ${CMAKE_PROJECT_NAME} dune-common dune-common_DIR
${PROJECT_BINARY_DIR})
endif()
#find dune-common and set the module path
find_package(dune-common REQUIRED)
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/modules"
${dune-common_MODULE_PATH})
#include the dune macros
include(DuneMacros)
# start a dune project with information from dune.module
dune_project()
# Create a module library
if(dune-common_VERSION VERSION_GREATER_EQUAL 2.9.0)
dune_add_library(dunegfe INTERFACE EXPORT_NAME GFE NAMESPACE Dune::
LINK_LIBRARIES ${DUNE_LIBS})
endif()
dune_enable_all_packages()
add_subdirectory("src")
add_subdirectory("dune")
add_subdirectory("doc")
add_subdirectory("cmake/modules")
add_subdirectory("test")
# finalize the dune project, e.g. generating config.h etc.
if(dune-common_VERSION VERSION_GREATER_EQUAL 2.10.0)
finalize_dune_project()
else()
finalize_dune_project(GENERATE_CONFIG_H_CMAKE)
endif()
# $Id$
# we need the module file to be able to build via dunecontrol
EXTRA_DIST=dune.module
SUBDIRS = m4 src test
# possible options
LDADD = $(IPOPT_LDFLAGS) $(IPOPT_LIBS)
AM_CPPFLAGS += $(IPOPT_CPPFLAGS)
noinst_PROGRAMS = rodobstacle rod3d harmonicmaps harmonicmaps-eoc dirneucoupling rod-eoc
rodobstacle_SOURCES = rodobstacle.cc
rod3d_SOURCES = rod3d.cc
rod_eoc_SOURCES = rod-eoc.cc
harmonicmaps_SOURCES = harmonicmaps.cc
harmonicmaps_CXXFLAGS = $(UG_CPPFLAGS) $(AMIRAMESH_CPPFLAGS) $(IPOPT_CPPFLAGS) $(PSURFACE_CPPFLAGS)
harmonicmaps_LDADD = $(UG_LDFLAGS) $(AMIRAMESH_LDFLAGS) $(UG_LIBS) $(AMIRAMESH_LIBS) \
$(IPOPT_LDFLAGS) $(IPOPT_LIBS) $(PSURFACE_LDFLAGS) $(PSURFACE_LIBS)
harmonicmaps_eoc_SOURCES = harmonicmaps-eoc.cc
harmonicmaps_eoc_CXXFLAGS = $(UG_CPPFLAGS) $(AMIRAMESH_CPPFLAGS) $(IPOPT_CPPFLAGS) $(PSURFACE_CPPFLAGS)
harmonicmaps_eoc_LDADD = $(UG_LDFLAGS) $(AMIRAMESH_LDFLAGS) $(UG_LIBS) $(AMIRAMESH_LIBS) \
$(IPOPT_LDFLAGS) $(IPOPT_LIBS) $(PSURFACE_LDFLAGS) $(PSURFACE_LIBS)
dirneucoupling_SOURCES = dirneucoupling.cc
dirneucoupling_CXXFLAGS = $(UG_CPPFLAGS) $(AMIRAMESH_CPPFLAGS) $(IPOPT_CPPFLAGS) $(PSURFACE_CPPFLAGS)
dirneucoupling_LDADD = $(UG_LDFLAGS) $(AMIRAMESH_LDFLAGS) $(UG_LIBS) $(AMIRAMESH_LIBS) \
$(IPOPT_LDFLAGS) $(IPOPT_LIBS) $(PSURFACE_LDFLAGS) $(PSURFACE_LIBS)
# don't follow the full GNU-standard
# we need automake 1.5
AUTOMAKE_OPTIONS = foreign 1.5
include $(top_srcdir)/am/global-rules
include $(top_srcdir)/am/top-rules
Preparing the Sources
=========================
Additional to the software mentioned in README you'll need the
following programs installed on your system:
automake >= 1.5
autoconf >= 2.50
libtool
Getting started
---------------
If these preliminaries are met, you should run the script
./autogen.sh
which calls the GNU autoconf/automake to create a ./configure-script
and the Makefiles. Most probably you'll have to provide where to find
the DUNE-files by
./autogen.sh --with-dune=PATH
where PATH is a directory with a dune/-subdirectory inside (this
convention is needed to keep the #include-syntax consistent even when
the headers are installed into /usr/include/dune later).
Passing options to ./configure
------------------------------
autogen.sh also calls the newly created configure-script to
conveniently pass on options about the used compiler. Thus you'll have
to provide autogen.sh any options you want configure to get, e.g.
./autogen.sh --with-dune=... --with-albert=... --without-x
Choosing the compiler and the options
-------------------------------------
The selection of the compiler works as follows: if --gnu or --intel is
passed to autogen it reads the content of gcc.opts or icc.opts to get
the default compiler flags. With the option --optim you can switch the
compiler-specific optimization parameters on.
If you want to change the compiler options to your favourites you can
either
- adapt the appropriate .opts-file and rerun autogen.sh. Please don't
commit this changed file to CVS if you're not sure if the options
work for everybody.
- copy an existing .opts-file to a new name, change the options and
use
./autogen.sh --opts=my.opts
More info
---------
See
./autogen.sh --help
and (if it exists)
./configure --help
for further options.
The full build-system is described in the dune/doc/Buildsystem (not in
duneapps/doc!)
$Id$
# dune-gfe
This module contains implementations of various geometric finite element methods (GFE).
## Automatic code formatting
The GitLab CI system of this module (in the file `.gitlab-ci.yml`) includes a job
that checks for proper code formatting. The CI system
uses the tool [uncrustify](https://github.com/uncrustify/uncrustify) to enforce the rules, guided by
the configuration file `dune-uncrustify.cfg` in the `dune-gfe` module source directory.
CI testing of the code formatting means that any merge request will fail CI
testing if it introduces code changes that violate the formatting rules.
To check locally whether code changes that you have made comply with the rules,
run
```
uncrustify -l CPP -c dune-uncrustify.cfg --no-backup `find -name "*.cc" -o -name "*.hh"`
```
in your source directory. If this does not modify the code, then your formatting
is correct.
When starting to use `uncrustify` to enforce proper code formatting, one large commit
had to be made that applied large amounts of white-space changes to pretty much
every source file. If you are bothered by this when using `git blame`, you can
tell `git` to ignore this particular commit by saying
```
git blame --ignore-revs-file=.git-blame-ignore-revs <file>
```
set(modules "DuneGfeMacros.cmake")
install(FILES ${modules} DESTINATION ${DUNE_INSTALL_MODULEDIR})
# File for module specific CMake tests.
/* begin dune-gfe
put the definitions for config.h specific to
your project here. Everything above will be
overwritten
*/
/* begin private */
/* Name of package */
#define PACKAGE "@DUNE_MOD_NAME@"
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "@DUNE_MAINTAINER@"
/* Define to the full name of this package. */
#define PACKAGE_NAME "@DUNE_MOD_NAME@"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "@DUNE_MOD_NAME@ @DUNE_MOD_VERSION@"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "@DUNE_MOD_NAME@"
/* Define to the home page for this package. */
#define PACKAGE_URL "@DUNE_MOD_URL@"
/* Define to the version of this package. */
#define PACKAGE_VERSION "@DUNE_MOD_VERSION@"
/* end private */
/* Define to the version of dune-gfe */
#define DUNE_GFE_VERSION "@DUNE_GFE_VERSION@"
/* Define to the major version of dune-gfe */
#define DUNE_GFE_VERSION_MAJOR @DUNE_GFE_VERSION_MAJOR@
/* Define to the minor version of dune-gfe */
#define DUNE_GFE_VERSION_MINOR @DUNE_GFE_VERSION_MINOR@
/* Define to the revision of dune-gfe */
#define DUNE_GFE_VERSION_REVISION @DUNE_GFE_VERSION_REVISION@
/* end dune-gfe
Everything below here will be overwritten
*/
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.50)
DUNE_AC_INIT
AM_INIT_AUTOMAKE
AC_CONFIG_SRCDIR([rod3d.cc])
AM_CONFIG_HEADER([config.h])
DUNE_SYMLINK
# we need no more than the standard DUNE-stuff
DUNE_CHECK_ALL
# implicitly set the Dune-flags everywhere
AC_SUBST(AM_CPPFLAGS, $DUNE_CPPFLAGS)
AC_SUBST(AM_LDFLAGS, $DUNE_LDFLAGS)
LIBS="$DUNE_LIBS"
AC_CONFIG_FILES([Makefile
src/Makefile
test/Makefile
m4/Makefile
rods.pc
])
AC_OUTPUT
# finally print the summary information
DUNE_SUMMARY_ALL
......@@ -21,11 +21,29 @@ cat > "${PARAMETERFILE}" <<EOF
# Number of grid levels
numLevels = $2
# Type of the domain decomposition algorithm
# Currently supported:
# - FixedPointIteration
# - RichardsonIteration
ddType = RichardsonIteration
#ddType = FixedPointIteration
# What is the preconditioner, if we are doing a Richardson iteration?
# Possible values:
# - DirichletNeumann
# - NeumannDirichlet
# - NeumannNeumann
# - RobinRobin
preconditioner = $4
#
NeumannNeumannDamping = 0.5 0.5
# Tolerance of the Dirichlet-Neumann solver
ddTolerance = 1e-9
# Max number of Dirichlet-Neumann steps
maxDirichletNeumannSteps = 30
maxDirichletNeumannSteps = 100
# Tolerance of the trust-region solver for the rod problem
trTolerance = 1e-12
......@@ -70,7 +88,7 @@ instrumented = 0
# Problem specifications
############################
#path = /home/haile/sander/data/multicoupling/simplecoupling/
#path = /home/sander/data/multicoupling/simplecoupling/
#gridFile = hexarod.grid
#dirichletNodes = hexarod.dn
#dirichletValues = hexarod.nodv
......@@ -92,26 +110,18 @@ instrumented = 0
#E = 1e6
#nu = 0.3
#rodRestEndPoint0X = 0.125
#rodRestEndPoint0Y = 0.125
#rodRestEndPoint0Z = 1
#rodRestEndPoint1X = 0.125
#rodRestEndPoint1Y = 0.125
#rodRestEndPoint1Z = 2
#rodRestEndPoint0 = 0.125 0.125 1
#rodRestEndPoint1 = 0.125 0.125 2
## Dirichlet values
#dirichletValueX = 0.125
#dirichletValueY = 0.125
#dirichletValueZ = 2.5
#dirichletValue = 0.125 0.125 2.5
#dirichletAxisX = 0
#dirichletAxisY = 0
#dirichletAxisZ = 1
#dirichletAxis = 0 0 1
#dirichletAngle = 0
########################################################
#path = /home/haile/sander/data/multicoupling/simplecoupling/
#path = /home/sander/data/multicoupling/simplecoupling/
#gridFile = cube_5x5x5.grid
#dirichletNodes = cube_5x5x5.dn
#dirichletValues = cube_5x5x5.nodv
......@@ -123,25 +133,23 @@ instrumented = 0
#rodA = 1
# Geometric moments (here: square of edge length one)
#rod J1 = 0.0833333
#rod J2 = 0.0833333
#rodJ1 = 0.0833333
#rodJ2 = 0.0833333
# Material parameters
#rodE = 2.5e5
#rodNu = 0.3
#E = 1e6
#nu = 0.3
## Dirichlet values
#dirichletValueX = 0.5
#dirichletValueY = 1.5
#dirichletValueZ = 10
#dirichletValue = 0.5 1.5 10
#dirichletAxisX = 0
#dirichletAxisY = 0
#dirichletAxisZ = 1
#dirichletAxis = 0 0 1
#dirichletAngle = 90
########################################################
path = /home/haile/sander/data/multicoupling/simplecoupling/
path = /home/sander/data/multicoupling/simplecoupling/
gridFile = cube_4x4x4.grid
dirichletNodes = cube_4x4x4.dn
dirichletValues = cube_4x4x4.nodv
......@@ -153,8 +161,10 @@ numRodBaseElements = 4
rodA = 0.0625
# Geometric moments (here: square of edge length 0.25)
rodJ1 = 0.0013021
rodJ2 = 0.0013021
#rodJ1 = 0.0013021
#rodJ2 = 0.0013021
rodJ1 = 0.00032552
rodJ2 = 0.00032552
# Material parameters
rodE = 1e6
......@@ -162,61 +172,106 @@ rodNu = 0.3
E = 1e6
nu = 0.3
rodRestEndPoint0X = 0.625
rodRestEndPoint0Y = 0.625
rodRestEndPoint0Z = 1
#rodRestEndPoint1X = 0.625
#rodRestEndPoint1Y = 0.625
#rodRestEndPoint1Z = 2
rodRestEndPoint1X = 0.625
rodRestEndPoint1Y = -0.082
rodRestEndPoint1Z = 1.707
rodRestEndPoint0 = 0.625 0.625 1
rodRestEndPoint1 = 0.625 0.625 2
#rodRestEndPoint1 = 0.625 -0.082 1.707
# Dirichlet values
dirichletValueX = 0.625
dirichletValueY = 0.875
dirichletValueZ = 2
dirichletValue1 = 0.625 0.875 2.0
dirichletAxisX = 0
dirichletAxisY = 0
dirichletAxisZ = 1
dirichletAngle = 90
dirichletAxis1 = 0 0 1
dirichletAngle1 = 90
# Where to write the results
resultPath = $RESULTPATH
EOF
mkdir -p ${RESULTPATH}"/tmp_"$3
# run simulation
../dirneucoupling ${PARAMETERFILE} | tee ${LOGFILE}
rm -rf ${RESULTPATH}"/tmp_"$3
}
# Parameters:
# 1: result directory
# 2: number of levels
# 3: damping factor
# 4: preconditioner
# run problems
MAXPROCS=4
for level in 4; do
for level in 1; do
#for level in 1 2 3 4; do
LEVELDIR=${level}"levels_rot"
if test -e ${LEVELDIR}/convrates; then
rm ${LEVELDIR}/convrates
fi
# if test -e ${LEVELDIR}/convrates; then
# rm ${LEVELDIR}/convrates
# fi
preconditioner=NeumannNeumann
LEVELDIR=${preconditioner}"_"${level}"levels"
# for damping in 0.1; do
# for damping in 0.1 0.6 0.9; do
for damping in 0.001 0.0025 0.005 0.0075 0.01 0.025 0.05 0.075 0.1 0.2 0.225 0.25 0.275 0.3 0.35 0.4 0.45; do
for damping in 0.6; do
# for damping in 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3; do
echo "Computing on "${level}" levels with damping factor "${damping}
runComputation $LEVELDIR $level $damping $preconditioner &
# Append convergence rate of this run to overall list for this level
#cat convrate >> ${LEVELDIR}/convrates
# Never have more than MAXPROCS processes
NPROC=$(($NPROC+1))
if [ "$NPROC" -ge "$MAXPROCS" ]; then
wait
NPROC=0
fi
done
preconditioner=DirichletNeumann
LEVELDIR=${preconditioner}"_"${level}"levels"
for damping in 0.001 0.005 0.01 0.05 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5; do
echo "Computing on "${level}" levels with damping factor "${damping}
runComputation $LEVELDIR $level $damping
runComputation $LEVELDIR $level $damping $preconditioner &
# Append convergence rate of this run to overall list for this level
#cat convrate >> ${LEVELDIR}/convrates
# Never have more than MAXPROCS processes
NPROC=$(($NPROC+1))
if [ "$NPROC" -ge "$MAXPROCS" ]; then
wait
NPROC=0
fi
done
preconditioner=NeumannDirichlet
LEVELDIR=${preconditioner}"_"${level}"levels"
#for damping in 0.115; do
for damping in 0.001 0.0025 0.005 0.0075 0.01 0.025 0.05 0.075 0.1 0.2 0.225 0.25 0.275 0.3 0.35 0.4 0.45; do
echo "Computing on "${level}" levels with damping factor "${damping}
runComputation $LEVELDIR $level $damping $preconditioner &
# Append convergence rate of this run to overall list for this level
#cat convrate >> ${LEVELDIR}/convrates
# Never have more than MAXPROCS processes
NPROC=$(($NPROC+1))
if [ "$NPROC" -ge "$MAXPROCS" ]; then
wait
NPROC=0
fi
done
done
\ No newline at end of file
This diff is collapsed.
add_subdirectory("doxygen")
add_subdirectory("manual")
# shortcut for creating the Doxyfile.in and Doxyfile
add_doxygen_target()
INPUT += @top_srcdir@/dune/gfe
EXCLUDE +=
EXAMPLE_PATH +=
EXAMPLE_PATTERNS +=
IMAGE_PATH +=
PREDEFINED += DOXYGEN
*.aux
*.log
*.gz
*.toc
*.out
*.upa
*.bcf
*.run.xml
*.bbl
*.blg
*.sublime-*
*.tdo
*.upb
*.fdb_latexmk
*.fls
*.loc
*.soc
# Final documents
dune-gfe-manual.pdf
dune_add_latex_document(
SOURCE dune-gfe-manual.tex
FATHER_TARGET doc
BUILD_ON_INSTALL
INSTALL ${CMAKE_INSTALL_DOCDIR}/manual)